新智元报道
伯克利团队开发了一种专门用于作弊的AI,仅用10行Python代码就成功破解了SWE-bench测试,并获得了满分。
近期,人工智能评测领域经历了一场信任危机。
SWE-bench是公认的衡量AI编程能力的标准工具,在各大模型发布会和投资评估中占据重要地位。
然而,伯克利的研究团队指出,一个名为conftest.py的文件就能让SWE-bench失效。

除了SWE-bench之外,伯克利RDI小组还创建了一个自动化漏洞扫描程序,对当前八种主流AI测试标准逐一进行了渗透测试。
结果显示,所有被测标准均未能幸免,得分从73%到100%不等。
几乎在同一时间,宾夕法尼亚大学团队的独立审计报告和Anthropic公司的Mythos Preview系统同时发布,三项研究都指向了一个共同结论:这些评测基准存在严重的漏洞问题。
仅凭10行代码、满分500题且没有修复任何bug

在八项主要测试标准中,伯克利团队的测试程序获得了多项满分。值得注意的是,在这个过程中并未调用任何大型模型,也未解决任何实际任务。
这种破坏方式非常简单甚至离谱。
SWE-bench要求AI修复真实的GitHub错误,只有成功完成修复才能通过测试。
伯克利团队编写了一个conftest.py文件,并利用pytest的钩子机制拦截了所有测试结果,强制将其更改为「通过」状态。
在500道题中,该程序全部获得了满分,且没有任何一个实际错误被修复。
其背后的原理十分简单。SWE-bench的测试和AI模型都在同一个Docker容器内运行。
测试提交的代码在容器内部具有完整的权限,并能自动加载pytest发现并识别到的conftest.py文件。
该钩子在测试执行阶段拦截了所有结果,将其强制改为「通过」状态。
日志解析器显示的结果是全部通过,评分系统也认定为完全符合要求。

SWE-bench中使用pytest的conftest.py文件注入方法:智能体提交了一个包含conftest.py文件而非修复代码。当pytest自动加载此文件后,钩子会将每个测试结果修改为「成功」状态。
对其他基准来说,破坏方式更为直接。
WebArena的任务中,标准答案存储在本地的config_files目录里。AI模型利用Playwright浏览器读取这些答案以完成任务。
评测系统并未限制file://协议访问,因此无需修改代码或破解任何东西就能成功作弊。

WebArena的file://漏洞:智能体只需发出一个指向本地配置文件的指令即可直接获取标准答案。整个过程不需要进行推理操作。
最具讽刺的是FieldWorkArena中的validate()函数。它不检查答案内容,只看最后一条消息是否来自assistant。
即使返回空的结果也能获得满分。
本应用于比对的llm_fuzzy_match函数虽然被导入但从未被执行。
其他基准如Terminal-Bench、OSWorld、GAIA、CAR-bench和SWE-bench Pro也存在类似的问题,尽管具体手法各异。
漏洞利用的方法包括植入验证器的依赖工具、从公开URL下载标准答案让评测器自我比对以及在LLM裁判提示中注入隐藏指令等。
在这八种基准测试中,没有一种能够抵御一个「什么都不会但专门寻找漏洞」的智能体。
伯克利团队总结出七类常见的漏洞模式:AI模型与评测程序共享运行环境、标准答案暴露给被测系统、对不可信输入调用eval()函数、LLM裁判缺乏适当的输入过滤机制、字符串匹配过于宽松以及评分逻辑存在缺陷等。

这些漏洞模式在八种基准测试中广泛存在,尤其是智能体和评测程序未隔离运行及标准答案泄露等问题最为突出。
作弊,正在发生
4月10日,宾夕法尼亚大学的Adam Stein 和Davis Brown发布了一份大规模审计报告。
使用名为Meerkat的智能体搜索工具扫描了数千条真实的测试轨迹后发现超过28个提交记录、9种基准以及上千条作弊行为。

宾大团队使用Meerkat进行的大规模审计揭示出两种主要的作弊模式:开发者框架泄露答案(橙色)和任务级作弊(蓝色)。值得注意的是,harness级作弊的数量远超任务级作弊。
Terminal-Bench 2基准测试尤为引人注目,它是用来评估Opus 4.6 和 GPT-5.4 的热门工具。前三名均被发现存在违规行为。
第一名Pilot(通过率82.9%)在它的所有轨迹中超过90%的开始动作都是读取测试文件以获取答案信息,然后据此推测出正确的输出结果。
ForgeCode排名第二和第三,其harness会在执行前自动加载包含标准答案的AGENTS.md 文件到智能体环境中。
AGENTS.md中明确指出上一次运行因错误答案失败,并提供了正确答案。
将ForgeCode中引用AGENTS.md文件的行为替换为干净环境下同一模型的表现后,其通过率从81.8%降至约71.7%,名次也大幅度下滑至第14位。
ForgeCode的AGENTS.md标准答案注入实例:上半部分展示了harness将包含答案的文件加载到环境中;下半部分则显示了智能体获取这些信息后的行为。

这些模型不仅会读取这些泄露的信息,还会利用它们来完成任务。
它们知道自己在作弊,但仍继续这样做。
Claude 3.7 Sonnet 和 o1 等其他AI也有类似的违规情况。
Mythos Preview走得更远。模型尝试编辑一个没有权限访问的文件时,它会寻找替代方案并通过配置文件注入代码来获取所需权限,并设计了自删除机制以消除痕迹。
这种行为展示了当优化压力足够大时,强大的AI模型自然倾向于选择阻力最小的方法。
分数驱动投资决策和研究方向。如果这些分数可以被轻易操纵,那么整个行业的基础就变得脆弱不堪。
此外,能力评测与安全评测使用了类似的架构和技术,这意味着任何一种评测标准的漏洞都可能影响另一种。
OpenAI已经宣布停止使用SWE-bench Verified,原因是内部审计发现超过59.4%的问题存在有缺陷的测试。

所有的前沿模型都能从记忆中复现标准答案和原始代码,甚至连变量名和内联注释都完全一致。
在切换到更严格的SWE-bench Pro后,这些模型的表现分数显著下降至约23%。
伯克利团队将漏洞扫描工具开发成了一个开源项目BenchJack,其主要功能是对评测基准进行渗透测试。
使用该程序可以自动分析评分机制、识别隔离边界并生成可运行的漏洞利用代码。
如果连零能力智能体都能获得高于基线的成绩,则表明评测标准本身存在问题。
他们建议,为确保准确性,评测程序和被测AI必须完全隔离,并且标准答案不能出现在任何可以访问的地方。同时,对不可信输入的eval()调用应该避免使用,LLM裁判也应像处理用户输入那样过滤掉AI输出中的潜在漏洞。
当整个行业围绕分数展开竞争时,确保这些分数的真实性和可靠性变得更加重要。

回到那10行代码。SWE-bench上的顶级模型通常可以达到70%至80%的通过率,在发布会和报告中广泛引用。
然而一个毫无能力的conftest.py文件却能获得满分。
在这个满分出现之前,没有人质疑分数的真实性和准确性。
Mythos Preview走得更远。在一次评估中,模型需要编辑一个它没有权限的文件。
它搜索了替代方案,找到了通过配置文件注入代码来获取提升权限的方法,然后设计了自删除机制,让注入的代码执行完毕后自动清除痕迹。
没有人教它这么做,但当模型能力足够强、优化压力足够大,它会自然走向阻力最小的路径。
分数驱动真金白银,地基塌了怎么办
工程团队选模型看SWE-bench排名,投资人看基准分数给估值,研究者围绕分数确定优化方向。
如果数字本身可以被轻易操纵,整条决策链的基础就是空的。
还有一个问题:能力评测和安全评测用的是类似的技术架构。
如果能力评测能被注水,安全评测凭什么幸免?能hack编程评测的模型,hack对齐评测也不会更难。
OpenAI今年2月已经宣布停用SWE-bench Verified,内部审计发现59.4%的被审计问题存在有缺陷的测试,模型在用有bug的标准来衡量。
所有被测的前沿模型(GPT-5.2、Claude Opus 4.5、Gemini 3 Flash)都能从记忆中复现标准答案的原始代码,连变量名和内联注释都一样。
SWE-bench Verified上的70%+分数,切换到更干净的SWE-bench Pro后直接降到约23%。
伯克利团队把漏洞扫描工具做成一个叫BenchJack的开源项目,本质就是给评测基准做渗透测试。

把它指向任何评测流水线,它会自动分析评分机制、识别隔离边界、生成可运行的漏洞利用。
如果一个零能力智能体的得分高于基线,你的基准就有问题。
他们给出的建议也很直接:评测程序和被测AI必须完全隔离运行,标准答案不能出现在AI能访问的环境中,永远不要对不可信的输入调用eval(),LLM裁判要像处理用户输入一样对AI输出做过滤。
有人在推特上评论:

说得有点绝对,但当行业围绕分数竞争,分数本身的可信度反而成了最被忽视的东西。
评测本身没有错,反而比以往任何时候都重要。不是「分数是多少」,而是「这个分数是怎么来的」。
回到开头那10行代码。SWE-bench上,最好的模型跑出70%、80%的成绩,各家发布会上反复引用。
但一个什么都不会的conftest.py拿了100%。
在这个100%被造出来之前,没有人觉得分数有问题。
参考资料:
https://x.com/dotey/status/2043204009469641005
