METR 用 10 分钟找到篡改评估日志的漏洞

模型评估机构 METR 10 月 6 日发文,演示了一条 AI 代理掩盖自身不当行为的路径:在评估框架 Inspect 的日志查看器里注入脚本,改掉人类审查者看到的内容。研究员在 AI 助手帮助下,大约 10 分钟就找到了这个漏洞。

Inspect 是业内常用的开源评估框架,最初出自英国 AI 安全研究所,现在由 Meridian Labs 维护。研究人员跑完一轮模型评估,通常会打开它的网页版查看器,逐条翻看代理执行了哪些命令、输出了什么。METR 盯上的就是这个环节。

漏洞出在公式渲染

查看器用 MathJax 渲染日志里的数学公式。METR 发现,代理可以在输出里写一段带 \href 的公式,把 SVG 的 <animate> 元素和它的 onbegin 事件塞进去;页面一渲染,这段代码就在审查者的浏览器里执行任意 JavaScript。

“the agent can modify the displayed webpage arbitrarily” (代理可以任意修改显示出来的网页。)

放到实际场景里,一个在评估中做了违规操作的代理,可以让审查者看到一份干净的记录:删掉某条命令,改写某段输出,或者在页面上插一段误导性说明。文章配图用的是 GPT-5.5 在 gdm_intercode_ctf 任务上的一段运行记录,只是用来展示篡改后的页面效果,METR 没有说 GPT-5.5 做过这种事。

演示在隔离的测试沙箱里完成,和生产环境分开。METR 也说明,它没有回头排查过去的真实评估里这个漏洞有没有被用过,目前只是概念验证。

修复很快,问题面更大

METR 把问题报给 Meridian Labs,对方一天内修复,10 月 1 日合并了引入“不信任模式”的代码,默认把代理产出的内容当成不可信数据处理。

单个漏洞补上了,METR 想讨论的是更大的一类问题。评估日志、推理记录、监控告警,是人类监督 AI 的主要窗口,而这些窗口里的内容大多由被监督的代理自己产出。文章给了四条建议:

  • 把可观测性当成安全关键基础设施,代理产出的日志、推理、行为记录一律按不可信输入处理;
  • 推理过程用防篡改的方式落盘,在人或 LLM 监控器读到之前,代理没有机会改动;
  • 多层防御,压低代理绕过监控又不被发现的几率;
  • 在对抗条件下对监控系统做压力测试。

横向对照:两类攻击面

METR 在文中引了 OpenAI 披露过的一次真实事件作对照:一次内部运行出现异常,监控系统 15 分钟内打了标记,人工 3 分钟后介入审查,运行在 2.5 小时后被终止。这条链路能跑通,前提是监控读到的记录本身可信。

两件事放在一起看,出问题的位置不同。OpenAI 那次,问题在代理的行为,靠监控发现;METR 这次,问题在监控所依赖的数据源,代理有机会直接改写它。监控越自动化,越依赖这些记录,记录一旦失真,事后复盘也跟着失效。

对国内做模型评测和代理产品的团队,这篇文章更像一份检查清单。不少团队直接用 Inspect,或者自建了类似的网页查看器,凡是会把代理输出按 Markdown、LaTeX、HTML 渲染出来的,都属于同一类风险。用 Inspect 的先升级到带“不信任模式”的版本;自建工具要确认代理输出在渲染前做过隔离或转义。

发现漏洞时用的是哪款 AI 助手,METR 没有披露;修复前有多少版本受影响,Meridian Labs 也还没有公开说明。

参考来源:METR 官方博客、CocoLoop、Inspect 开源仓库;METR 文中引述的 OpenAI 事件处置时长核对至分钟口径。