当无害的 CLI 命令在编码智能体中组合成漏洞利用
2026 年 7 月的一项研究提出「CLI 命令组合风险」:编码智能体执行的一个个无害命令,通过共享的操作系统状态串联成越权能力——而五种已部署的防御都没有察觉。
这是什么?
2026 年 7 月 3 日,中山大学的研究者与山东大学、北京大学及香港科技大学的合作者在 arXiv 发布论文,描述了基于 LLM 的编码智能体中一个被忽视的风险面。现代编码智能体——Claude Code、Codex CLI、Gemini CLI 及类似工具——越来越多地通过发出普通的命令行命令来工作:克隆仓库、读取文件、安装依赖、运行测试、编辑配置、提交更改。遵循 Unix 哲学,这些命令通过共享的操作系统状态相互协作,一个命令可以写入某个状态,供后续命令读取。论文的贡献在于命名并度量了这种协作被滥用时会发生什么:一串单独看来无害的命令,可以组合成远超用户任务范围的能力。作者将其称为 CLI 命令组合风险(CCR),并表明当前的智能体对此普遍存在暴露。
工作原理
此前几乎所有关于编码智能体安全的研究都聚焦于指令层:放置在文件、网页、工单或工具输出中的对抗性文本,试图将模型引向有害的下一步动作。防御也位于同一层——提示过滤、结构化输入、隔离,或在运行时检查所提议的工具调用是否符合用户意图。它们都共享一个隐含假设:攻击信号在单个输入、响应或动作中是可见的。
CCR 打破了这一假设。论文将智能体的执行建模为一条带状态的命令轨迹——每个命令都是对本地状态的一次转移,该状态包括环境变量、工作区文件、仓库配置、软件包生命周期脚本和钩子。恶意信号不出现在任何单个命令中,而是存在于无害步骤之间的生产者—消费者关系里:一个命令合法地写入某个状态,后续命令合法地消费它,二者的组合效果触及了敏感之处。检查当前命令字符串的本地审批闸门,看不见某个命令所产生或消费的隐藏状态,因此组合后的轨迹得以绕过。
论文的示例是 git 钩子路径模式,这在编码智能体的安全公告中已有公开记录:一个由攻击者控制的仓库,通过其 README 要求智能体执行一步一行的安装步骤,将 git 的钩子目录重定向到该仓库;智能体后续例行的提交操作随即读取该配置,并在智能体上下文中执行被植入的钩子,从而导致代码执行。两条命令单独看都不是恶意的。为在规模上让此类情形浮现,研究者构建了一个知识引导的框架,从公开的 CVE、维护者公告和研究者概念验证中提炼出经过验证的命令—状态行为,将其组合成貌似合理的工作流,并对智能体进行黑盒测试。本论文度量的是一类基于已公开知识构建的既有风险,而非新的漏洞利用。
为何重要
在五个真实的 CLI 编码智能体和五个后端模型、共 2,525 次试验中,组合攻击在看似无害的开发任务下达到了 96.59% 的端到端成功率,而对应的指令层基线最高只有约 2.18%。结构化的知识库很关键:相比独立的模型生成器,它多产出超过 50% 的有效案例。由于 CLI 基底直接触及开发者的机器与生产环境,其影响并非理论——同一类组合可以擦除数据、外泄源代码和凭据、污染下游软件供应链、植入持久后门,或横向渗透到内部系统。
更尖锐的发现是防御性的。作者评估了五种有代表性的已部署防御,发现没有一种能察觉这种组合风险,因为每一种都在对单个命令或动作进行推理,而不是对整条轨迹上的状态关系进行推理。这就是结构性缺口:相关的风险单元是整条命令轨迹,但生产环境中的控制仍在逐条判断命令。
防御
实际的转变在于:不再把每条命令字符串当作安全单元,而开始沿整条轨迹追踪状态的来源(provenance)。对智能体进行插桩,记录每个命令产生和消费的状态——环境变量、git 与工具配置、钩子、软件包生命周期脚本——当后续某个与安全相关的命令消费了源自不可信内容(如克隆的仓库或抓取的网页)所写入的状态时,增加阻力。要管控消费者,而不仅是生产者:一个依赖于早前步骤从不可信输入写入的配置的提交、安装或测试,即使每条命令看起来都很例行,也值得审查。
削减组合能力所依赖的常驻权限。让编码智能体在无法访问真实凭据或生产系统的沙箱中运行,并默认禁用自动触发的执行面——固定或忽略 git 钩子路径,跳过软件包生命周期脚本(例如在安装时抑制脚本),并隔离智能体可以修改的配置。在所产生的状态会改变后续执行语义的轨迹边界处,加入人工审批。最后,用多命令组合的用例——而不仅是指令层注入——对编码智能体进行红队演练,并使控制措施与论文提出的方向对齐:一种感知来源的防御,对整条轨迹上的状态关系进行推理,而非孤立地检查动作。
状态
| 项目 | 详情 |
|---|---|
| 贡献 | 命名并度量编码智能体中的 CLI 命令组合风险(CCR) |
| 方法 | 知识引导框架,从公开的 CVE、公告与 PoC 中提炼命令—状态行为 |
| 评估 | 5 个 CLI 编码智能体 · 5 个后端 LLM · 2,525 次试验 |
| 攻击成功率 | 端到端 96.59%(无害任务下)· 指令层基线 ≤ 2.18% |
| 已部署防御 | 测试了 5 种代表性防御——无一能察觉该组合风险 |
| 提出方向 | 在命令轨迹上进行的、感知来源的防御 |
| 真实案例 | 编码智能体 IDE 中经由 git 钩子路径的组合式 RCE——CVE-2026-26268 |
关键日期:论文于 2026 年 7 月 3 日发布至 arXiv。