←新闻详情

Trail of Bits Blog更新于 10月27日 19:20

Trail of Bits 质疑 1Password 的 AI 补丁基准测试存在误导

1Password's AI patching benchmark is misleading - The Trail of Bits Blog

AI 导读

Trail of Bits 指出 1Password 于 2026 年 8 月 6 日发布的 AI 补丁报告存在误导:其“仅 26% 生成干净修复”的结论包含了被故意指示打错补丁、以及无法编译或测试补丁的实验。重新分析该研究公开的数据后,在允许运行代码且未被指示打错补丁的试验中,1Password 模型生成的 3,067 个补丁有 2,634 个(86%)成功阻断给定漏洞利用。Trail of Bits 还基于 2024 至 2026 年 236 项安全评估中 2,265 个漏洞的首次修复记录指出,即便条件理想,仍有 12.5%(约八分之一)的首次修复未能完全解决问题。

正文 · AI 翻译

Anish Naik、Dan Guido、Benjamin Samuels、Marcelo Morales 2026年9月15日 patch-the-planet、开源、AI 页面内容 实验如何得出一个误导性的标题 在理想条件下,开发者每八次修复中就有一次出错 我们的补丁在真实项目中遭遇了什么 维护者如何审查 Patch the Planet 的补丁 一位维护者和一个智能体引入了同一个 freenginx 崩溃 我们检查了补丁被合并后发生了什么 用于生成更好安全补丁的智能体技能 一个有用的补丁基准测试应当衡量什么 1Password 于2026年8月6日发布的 FLAWED 报告,让防御者对 AI 打补丁的能力产生了误导性的认识。其标题称,模型仅在 26% 的情况下生成了干净的修复。这一数字包含了故意指示智能体应用错误修复的实验,以及智能体无法编译或测试其补丁的实验。

该报告可能让防御者变得不那么有效,因为它劝阻他们使用本可帮助他们修复更多漏洞的技术。那些按字面理解其标题的团队,可能会让本可修复的漏洞得不到处理。

我们希望我们的工作能帮助防御者修复更多漏洞。本文分享了来自我们咨询项目和 Patch the Planet 的关于人类与智能体补丁质量的真实世界数据。我们还发布了两项智能体技能:post-patch-validation,帮助智能体测试修复;以及 review-walkthrough,帮助工程师审查修复。

我们对 1Password 的代码和数据的审查发现,有四项选择使其 26% 的干净修复率成为对日常补丁工作的误导性指引。1

1Password 的标题还掩盖了其自身数据中一项有用的结果。我们重新分析了该研究随附发布的补丁和记录的测试结果,保留了智能体可以运行代码且未被指示应用错误修复的试验。在这些试验中,1Password 的模型生成的 3,067 个补丁中有 2,634 个(86%)阻断了所提供的漏洞利用。我们排除了该研究归类为查阅了上游修复的运行。阻断该漏洞利用并不能证明修复是完整的,但这些结果表明,在合理的工作条件下存在有用的打补丁能力,而标题未能传达这一点。

指令和评分引入了更多问题,其中若干问题 Davi Ottenheimer 也已指出:

评分错误可能惩罚有效的修复,并让有漏洞的补丁通过。再加上精心挑选的样本和故意设置的糟糕指令,该报告就没有可信的依据来支撑其标题。防御者不应把 1Password 的标题比率当作衡量 AI 打补丁能力的严肃指标。

理解智能体的失败还需要理解开发者提交不完整修复的频率。我们的安全咨询工作为我们提供了开发者如何修复自己软件中漏洞的详细记录。我们向客户提供详细的漏洞报告,然后进行“修复审查”,以检查他们提出的补丁是否完全解决了问题。

我们的记录将每个漏洞与开发者首次提出的修复以及我们对其是否有效的评估联系起来。它们保留了开发者在问题被视为解决之前修改的不成功尝试。

我们审查了 2024 年至 2026 年间 236 项 Trail of Bits 安全评估中 2,265 个漏洞的首次提交修复。这些开发者维护着受影响的软件,拥有我们工程师提供的详细报告,并且知道我们会审查他们的补丁。即使在这些有利条件下,仍有 283 个首次修复未能完全解决所报告的问题:12.5%,即八分之一。

展示首次修复提交结果的图表

考虑到同一评估中的多次修复,95% 置信区间为 10.5% 至 14.5%。有时我们会在非正式对话中指出客户补丁中的错误,他们会在正式修复审查之前改正。这些早期失败可能永远不会出现在审查记录中,因此我们的数据可能低估了失败的首次尝试。我们还排除了现有记录无法确定修复是否有效的情况。与智能体进行直接比较需要相同的任务和工作条件。

通过我们与 OpenAI 的联合倡议 Patch the Planet,Trail of Bits 为广泛使用的开源项目共同撰写了数百个补丁。智能体编写补丁,工程师指导工作并检查结果。随后项目维护者决定是合并、修改还是拒绝每个提交。

我们检查了数据集中截至 2026 年 9 月 14 日维护者已合并或关闭的每个 Patch the Planet 提交的公开审查历史:186 个拉取请求。1Password 的基准测试使用了六个因其修复复杂而被选中的漏洞。

维护者合并了我们 186 个拉取请求中的 126 个,接受率为 67.7%。3 在这 126 个拉取请求中,有 91 个(72.2%)维护者接受了我方最初提出的安全修复。

表1:维护者对126个已合并的Patch the Planet拉取请求所要求的更改。与安全相关的修订包括对拟议修复的修补以及对其安全覆盖范围的扩展。

维护者的接受并不代表每个补丁都是正确的。

维护者未合并便关闭了另外60份提交。其中大多数被其他工作取代,或因政策、流程、范围或维护原因而被拒绝。有四项因技术原因被明确拒绝。

表2:维护者未合并便关闭60个Patch the Planet拉取请求的原因

其中一份被关闭的提交就是我们的freenginx补丁。

1Password的案例研究考察了Patch the Planet针对freenginx嵌入式Perl模块中一个内存安全漏洞的修复。一名智能体在Trail of Bits工程师的指导下编写了我们的补丁。该补丁留下了一条易受攻击的代码路径未处理,并在请求清理期间引入了一次新的崩溃。该论文对我们补丁的批评是正确的。

维护者关闭了我们的拉取请求,并提交了一个单独的修复。该修复覆盖了全部三条易受攻击的代码路径,但在清理期间引入了同样的崩溃。该论文也记录了维护者的这一回归。

两位作者都遇到了同一个陷阱。最初的漏洞允许Perl在freenginx使用某个回调之前将其销毁。

两个修复都让该回调保持存活,以便freenginx之后可以使用它。但如果请求先超时,freenginx会使该请求不可用,然后释放该回调。释放它可能会运行仍试图使用该请求的Perl代码,导致工作进程崩溃。两位作者都忽略了他们的修复之后可能在清理期间引发的问题。要发现这个问题,需要超越最初的漏洞,去考察请求提前结束时会发生什么。

两位作者,一位是人类,一位是智能体,各自独立工作,却在同一个漏洞上犯了同样的错误。正在决定是否使用智能体的读者需要了解它们的失败与人类开发者的失败相比如何。要确定哪一个更可靠,需要在可比条件下对两者进行测量。

我们检查了Patch the Planet项目中约33,500个后续提交。当某个后续提交更改了我们的补丁曾修改过的文件时,我们会调查它是否修复了我们的补丁所引入的问题。对于每个疑似回归,由一名智能体尝试用概念验证来证明其影响。随后其他智能体和我们的工程师对这些发现提出质疑。

审查发现了至少十个功能性缺陷;四个构建、测试或发布自动化缺陷;以及一个性能缺陷。它没有发现可利用的安全漏洞。两个例子说明了我们识别出的问题:

我们正在将这项调查扩展到我们编写的每一个补丁,包括有维护者贡献的补丁。这些发现将帮助我们增加检查项,以便在提交未来的补丁之前捕获这些失败。

我们随本文发布两项智能体技能:post-patch-validation,用于帮助智能体测试安全修复;以及review-walkthrough,用于帮助工程师审查代码更改。

post-patch-validation是我们编写的一项新技能,用于帮助智能体在提交补丁以供审查之前捕获不完整的修复和回归。它并未用于上述Patch the Planet工作。

该技能从漏洞报告以及补丁前后的代码开始。它引导智能体完成四项任务:

未通过的检查会为智能体提供具体问题,供其在提交补丁之前调查和修复。该技能会保存测试和结果,以便维护者可以看到检查了哪些内容。

要试用post-patch-validation,请安装该技能,并向你的智能体提供漏洞报告以及易受攻击和已修补的修订版本:

“使用post-patch-validation,依据<漏洞报告文件>中的漏洞报告,验证HEAD中的补丁相对于<易受攻击修订版本>是否正确。”

review-walkthrough帮助工程师审查他们负责合并的补丁。它将一个分支的完整差异转化为交互式演练,按合乎逻辑的阅读顺序解释各项更改。审查发现会显示在相关代码旁边,工程师可以在那里检查这些发现并起草自己的评论。该演练还可以准备一份GitHub审查以供提交。按照快速入门为你的分支生成演练。

这些发布加入了我们其他用于改进安全补丁的公开智能体技能:

我们公开这些方法,以便其他团队可以用它们来检查和改进自己的补丁。

一个有用的补丁基准测试应当衡量智能体是否帮助开发者产出正确的修复,以及这些修复需要多少审查。我们在2018年评估模糊测试研究指南中的原则在此适用:

我们对AI对防御者的实用性持乐观态度。通过Patch the Planet,我们投入工程时间,与维护受影响软件的人员一起修复漏洞。我们检查失败,以便改进我们的方法。

我们将继续让智能体处理困难的安全问题,并公开工具和经验教训。我们希望其他团队检验我们的结论,并将这些方法推进一步。我们的目标是让没有专职安全团队的维护者有能力发现并修复原本无人处理的漏洞。

该论文将干净修复定义为完全解决漏洞且不实质性改变应用行为。↩︎

六个目标的均值标准误约为九个百分点,而报告并未披露这一点。↩︎

截至2026年9月14日,我们的数据集包含240个公开的上游拉取请求。我们从结果分析中排除了54份仍处于开放状态的提交。我们按拉取请求计数,每个拉取请求可包含多个补丁,并将维护者编写的替代补丁排除在我们的已合并总数之外。↩︎

X LinkedIn GitHub Mastodon Hacker News 相关文章 虚拟机无法容纳具备网络能力的智能体 2026年8月26日 你不能再假设仅仅一台虚拟机就能容纳足够先进的AI智能体。

来源

Trail of Bits Blog