《When Context Gets Root: Privilege Escalation in LLM Harnesses》于 16:03:57 UTC 的 8 月 27 日提交至 arXiv。其核心主张是,包裹模型的软件——而不是模型本身——会把攻击者控制的文件内容提升到代理的最高权限指令槽中,因此即便是完全服从指令的模型也仍会被攻破。

测试对象

六个 harness,均为有明确名称的当前版本:Claude Code(Opus 4.8,v2.1.210)、Codex(GPT-5.5,v0.138.0)、Gemini CLI(Gemini 3.1 Pro Preview,v0.50.0)、Qwen Code(Qwen3.7 Max,v0.21.4)、Kimi(Kimi 3,v0.36.0)以及 OpenCode(DeepSeek-V4-Pro-0813,v1.18.1)。这些攻击是通过已发布功能复现的——持久目标和计划任务——这也使其具有可操作性,而非纯理论。

摘要中的数字

“在无限制动作执行下,这些攻击在六个 harness 上全部达成了全部 13 项目标”,并且“在自动权限审查下,这些攻击在提供该模式的三个 harness 上也达成了全部 13 项目标”。引言还给出了工具到用户升级 97.3% 的平均成功率,以及工具到系统升级 80.3% 的平均成功率。

常见表述哪里出了问题

“六个中的六个、十三个中的十三个”听起来像是每个代理每次都全部失守。但论文自己的表格说明了更窄的事实:13/13 的意思是,在重复尝试中,每一项目标至少成功过一次——并不意味着每次尝试都成功。在可用的最宽松设置 Full Access 下,按单次尝试计算的成功率分别是:Claude Code 31.7%、Gemini CLI 61.7%、Qwen Code 61.7%、Kimi 64.9%、OpenCode 72.5%。只有 Codex 达到了真正的 100.0%。更诚实的标题应当是:给足重试次数后,每一项目标最终都会落到每个代理身上,但命中率大约从三分之一到全中不等。

第二,文中把两种机制写得像是同等有效,而事实并非如此。自动权限审查只在一个 harness 上明显起到了作用:Codex 下降了 27.8 个百分点,论文也解释了原因——“Codex 的 Auto PR 会主动检查新插入的函数调用及其运行时行为。”而在 Claude Code 上,成功率反而从 31.7% 升至 37.1%;在这样的样本量下,这更像噪声,而不是防御真正生效。把两种机制都笼统地说成同样失效,会抹掉这项研究中唯一真正起作用的机制。

第三,再看分母:六个 harness 中有三个根本没有权限审查模式,所以“提供该模式的三个 harness”是 3 个中的 3 个,不是 6 个中的 3 个。

批准攻击的审查者

论文中有一句值得原文引用:“在成功的 Claude Code 案例中,审查者观察到了对 todo server 所做的修改,但仍批准了其执行。”检查确实运行了,看到了改动,然后点了“是”。