利用 Claude Mythos Preview 加固 Firefox

Hacker News Top 新闻

摘要

Mozilla 详细介绍了他们如何利用 Claude Mythos Preview 及其他 AI 模型识别并修复了 Firefox 中的大量潜在安全漏洞,展示了 AI 在代码加固方面效能的提升。

<a href="https:&#x2F;&#x2F;arstechnica.com&#x2F;information-technology&#x2F;2026&#x2F;05&#x2F;mozilla-says-271-vulnerabilities-found-by-mythos-have-almost-no-false-positives&#x2F;" rel="nofollow">https:&#x2F;&#x2F;arstechnica.com&#x2F;information-technology&#x2F;2026&#x2F;05&#x2F;mozil...</a>
查看原文
查看缓存全文

缓存时间: 2026/05/08 08:35

# 幕后揭秘:使用 Claude Mythos Preview 强化 Firefox 安全性 – Mozilla Hacks - Web 开发者博客 来源: https://hacks.mozilla.org/2026/05/behind-the-scenes-hardening-firefox/ 两周前,我们宣布 (https://blog.mozilla.org/en/privacy-security/ai-security-zero-day-vulnerabilities/) 借助 Claude Mythos Preview 和其他 AI 模型,我们在 Firefox 中识别并修复了创纪录数量的潜在安全漏洞。在这篇文章中,我们将详细介绍我们如何处理这项工作、发现了什么,以及为其他项目提供如何利用新兴能力来强化自身防御的建议。 ## 突然间,漏洞变得非常厉害 就在几个月前,人工智能生成的针对开源项目的安全漏洞报告大多被视为令人不快的垃圾信息。处理那些看起来合理但实际上错误的报告给项目维护者带来了不对称的成本:提示大语言模型(LLM)在代码中找出“问题”既便宜又容易,但对此做出回应却缓慢且昂贵。这种动态在短短几个月内给我们带来的变化之大,怎么强调都不为过。 这主要归因于两个因素的结合。首先,模型的能力得到了大幅提升。其次,我们极大地改进了*驾驭*这些模型的技术——引导它们、扩展它们,并将它们堆叠起来以生成大量信号并过滤掉噪声。 通常情况下,我们在发布修复程序和发布安全公告后的几个月内会保密详细的漏洞报告,这主要是为了预防任何因各种原因未能及时更新到最新 Firefox 版本的用户。鉴于该话题引发的异常关注以及整个软件生态系统采取行动的紧迫性,我们经过深思熟虑决定公开一小部分与我们近期发布的修复程序相关的报告。我们试图从各种浏览器子系统中抽取这些报告,但选择过程仍然有些随意。尽管如此,我们希望这些报告的深度和多样性能为我们的能力评估以及对防御者开始应用这些技术的呼吁增添可信度: | Bug ID | Description | | --- | --- | | 2024918 (https://bugzilla.mozilla.org/show_bug.cgi?id=2024918) | 不正确的相等性检查会导致 JIT 优化掉活动 WebAssembly GC 结构的初始化,从而在经历了内部和外部研究人员广泛模糊测试的代码中创建一个具有潜在任意读写能力的假对象基原。 | | 2024437 (https://bugzilla.mozilla.org/show_bug.cgi?id=2024437) | 一个长达 15 年的元素漏洞,通过精心编排浏览器远处部分的边缘情况(包括递归栈深度限制、动态属性和循环收集)触发。 | | 2021894 (https://bugzilla.mozilla.org/show_bug.cgi?id=2021894) | 可靠地利用 IPC 上的竞争条件,允许被破坏的内容进程操纵父进程中的 IndexedDB 引用计数,从而触发 UAF(用后释放)并可能导致沙箱逃逸。 | | 2022034 (https://bugzilla.mozilla.org/show_bug.cgi?id=2022034) | 一个原始 NaN 穿越 IPC 边界可以伪装成带标签的 JS 对象指针,将双重反序列化转变为父进程的假对象基原,以实现沙箱逃逸。 | | 2024653 (https://bugzilla.mozilla.org/show_bug.cgi?id=2024653) | 一个错综复杂的测试用例,通过嵌套事件循环、pagehide 监听器和垃圾收集触发元素属性设置器中的 UAF。 | | 2022733 (https://bugzilla.mozilla.org/show_bug.cgi?id=2022733) | 通过向 WebTransport 发送数千个证书哈希来触发引用计数繁重的复制循环中的竞争条件,并从被破坏的内容进程通过 IPC 利用该竞争条件触发父进程 UAF。 | | 2023958 (https://bugzilla.mozilla.org/show_bug.cgi?id=2023958) | 通过拦截 glibc DNS 函数调用来模拟恶意 DNS 服务器,以重现 UDP->TCP 回退的边缘情况,在解析 HTTPS RR 和 ECH 时触发缓冲区溢出读取和父进程栈内存泄漏。 | | 2025977 (https://bugzilla.mozilla.org/show_bug.cgi?id=2025977) | 一个长达 20 年的 XSLT 漏洞,其中递归 key() 调用导致哈希表重新哈希,在原始条目指针仍在使用时释放其底层存储(我们修复的涉及 XSLT 的几个高严重性问题之一)。 | | 2027298 (https://bugzilla.mozilla.org/show_bug.cgi?id=2027298) | 修补颜色选择器以模拟否则无法自动化的用户选择,然后使用同步输入事件旋转嵌套事件循环,重新进入 actor 拆解并在回调尚未展开时释放它,触发内容进程 UAF。 | | 2023817 (https://bugzilla.mozilla.org/show_bug.cgi?id=2023817) | 被破坏的内容进程可以向父进程发送任意壁纸图像进行解码,这可以与图像解码器中的假设漏洞配对以逃逸沙箱。这需要难以自动化的推理,关于父进程中输入的信任级别。 | | 2029813 (https://bugzilla.mozilla.org/show_bug.cgi?id=2029813) | 通过利用用于将值从沙箱边界的不可信侧复制到可信侧的验证逻辑中的漏洞,逃逸我们为第三方库(RLBox (https://blog.mozilla.org/attack-and-defense/2021/12/06/webassembly-and-back-again-fine-grained-sandboxing-in-firefox-95/))提供的进程内沙箱技术。 | | 2026305 (https://bugzilla.mozilla.org/show_bug.cgi?id=2026305) | 一个极小的测试用例,利用 HTML 表格中特殊的 rowspan=0 语义,通过附加 >65535 行来绕过钳制并溢出 16 位布局位字段,多年来未被模糊测试器检测到。 | 请注意,其中许多漏洞是*沙箱逃逸*,需要与其他漏洞结合才能实现*全链* Firefox 妥协。这些报告假设渲染网站内容的沙箱进程已经被其他单独漏洞破坏,并且现在正在运行攻击者控制的机器代码,试图将控制权提升到特权父进程。在构建沙箱逃逸时,允许模型修补 Firefox 源代码,只要修改后的代码仅限于在沙箱进程中运行[[1]](https://hacks.mozilla.org/2026/05/behind-the-scenes-hardening-firefox/#fn1)。 这种类型的漏洞通过模糊测试极难发现,虽然我们取得了一些成功开发新技术 (https://blog.mozilla.org/attack-and-defense/2024/06/24/ipc-fuzzing-with-snapshots/) 来填补这一空白,但 AI 分析为这一关键表面提供了更全面的覆盖。 与模型发现的同样有趣的是它们*没有*发现的内容——不是因为它们没有尝试,而是因为它们无法绕过 Firefox 的分层防御。例如,近年来我们收到了来自安全研究人员的几份巧妙报告,通过触发特权父进程中的原型污染成功逃逸了进程沙箱。我们没有逐一修复这些问题,而是进行了一项架构变更 (https://bugzilla.mozilla.org/show_bug.cgi?id=1771084),默认冻结这些原型。在审核框架日志时,我们看到许多*尝试*沿着这条逃逸路线进行的尝试被此设计挫败。观察到来自先前加固工作的直接回报比发现和修复更多漏洞更令人欣慰。 ## 驾驭模型以构建加固管道 在过去几年里,我们内部一直在实验使用 LLM 进行代码审计,早期尝试使用 GPT 4 或 Sonnet 3.5 等模型静态分析高风险代码以查找漏洞。这些实验显示了一些希望,但高误报率使得它们难以扩展。 能够可靠检测安全问题的代理式框架的引入彻底改变了这一点。它们可以找到真实漏洞*并*驳回不可复现的推测。这种框架的关键特性在于,给定正确的接口和指令,它可以创建并运行可复现的测试用例来动态测试有关代码中漏洞的假设。 在 2 月修复了 Anthropic 发送给我们的初始问题集 (https://blog.mozilla.org/en/firefox/hardening-firefox-anthropic-red-team/) 后,我们在现有的模糊测试基础设施 (https://hacks.mozilla.org/2021/02/browser-fuzzing-at-mozilla/) 之上构建了自己的框架。我们首先进行小规模实验,提示框架使用 Claude Opus 4.6 查找沙箱逃逸。即使使用该模型,我们也识别出大量以前未知的漏洞,这些漏洞需要对多进程浏览器引擎代码进行复杂推理。 起初,我们在终端中监督该过程,以实时观察过程并调整提示和逻辑。一旦运行良好,我们就在多个临时 VM 上并行化作业,每个 VM 负责在特定目标文件中查找漏洞并将其发现写回桶中。 发现子系统是必要的,但不足以扩大努力。为了扩展这项工作,我们需要将其与完整的安全漏洞生命周期集成:确定查找什么、在哪里查找以及如何产生的结果。最后一部分包括对已知问题的去重、跟踪漏洞、分类和处理修复程序。虽然模型是驱动框架的核心原语,但此完整管道对于使其在大规模上实用是必需的。虽然框架可能跨项目可重用,但此管道本质上是项目特定的,反映了每个代码库的语义、工具和处理流程。建立这一点需要大量迭代,并与负责接收传入漏洞的 Firefox 工程师保持紧密反馈循环。 ## 升级模型 一旦端到端管道到位,当新模型可用时,替换不同模型就变得轻而易举。尽早构建此管道帮助我们使用公开可用的模型发现了一些严重漏洞,并帮助我们在有机会评估 Claude Mythos Preview 时迅速起步。 根据我们的经验,模型升级提高了整个管道的有效性:系统在查找潜在漏洞、创建概念证明测试用例以演示它们以及阐述其病理和影响方面同时变得更好。 除了修复在 Firefox 150 发布版 (https://www.firefox.com/en-US/firefox/150.0/releasenotes/) 中由 Claude Mythos Preview 识别的 271 个漏洞外,我们还在 Firefox 149.0.2 (https://www.firefox.com/en-US/firefox/149.0.2/releasenotes/)、150.0.1 (https://www.firefox.com/en-US/firefox/150.0.1/releasenotes/) 和 150.0.2 (https://www.firefox.com/en-US/firefox/150.0.2/releasenotes/) 中发布了更多此类修复程序。 我们继续在内部通过其他方式发现漏洞,并且与其他项目类似,过去几个月我们看到了外部报告的大幅增加。 一个图表显示每月发布的 Firefox 安全漏洞修复数量,2025 年每月呈 20-30 趋势,2026 年 2 月和 3 月激增至 60-70,2026 年 4 月达到 423。 最终,每个漏洞都需要仔细关注和适当修复。应对这种前所未有的数量导致过去几个月里大量工作和长时间加班,我们为团队如何应对这一挑战感到极其自豪。超过 100 人为此贡献代码,以发布迄今最安全的 Firefox。除了编写和审查补丁外,其他人一直在构建和扩展此管道、分类、测试修复程序并管理每个漏洞的发布流程。 ## 总结 任何构建软件的人都开始可以使用带有现代模型的框架来查找漏洞并加固他们的代码。我们建议立即开始。你会找到漏洞,并且会让自己准备好在有新模型可用时立即利用它们。你可以从非常简单的提示开始,然后观察和迭代。我们最初的提示与这里描述的相似 (https://youtu.be/1sd26pWhfmg?si=tRU14Bpc4MwTeMAT&t=316)。通过迭代,我们构建了大量的编排和工具以优化和扩展管道,但内部循环的本质保持不变:代码的这一部分存在漏洞,请找到它并构建测试用例。 我们尚未触底 Firefox 中的所有潜在漏洞,但对进展轨迹感到相当满意。目前,我们的扫描主要集中在代码的特定区域(文件、函数),我们根据人类判断和自动信号的混合指令系统在此处查找。在不久的将来,我们打算将此分析集成到我们的持续集成系统中,以在补丁落地树中时扫描它们。模型对提供上下文的形式非常灵活,我们期望基于补丁的扫描与基于文件的扫描一样有效甚至更好。 当前时刻充满危险,但也充满机遇。让我们共同努力保护互联网。 --- ## FAQ ### 公告说“271 个漏洞”,但我数的不同。怎么回事? 在公告网页 (https://www.mozilla.org/en-US/security/advisories/mfsa2026-30/#CVE-2026-6784) 上,我们将所有内部报告的漏洞分组为带有多个底层漏洞的“汇总” CVE。该网页由 foundation-security-advisories (https://github.com/mozilla/foundation-security-advisories) 存储库中的 yaml (https://github.com/mozilla/foundation-security-advisories/blob/dcb9392460ff2026f02ca45d37142c4cad17eb83/announce/2026/mfsa2026-30.yml#L236-L262) 构建,这是我们的 CVE 分配的规范位置。虽然某些浏览器完全不为内部发现的问题创建 CVE 标识符,但我们提供此信息是为了尽可能透明。在 Firefox 150 中,有三个内部汇总:CVE-2026-6784(154 个漏洞)、CVE-2026-6785(55 个漏洞)和 CVE-2026-6786(107 个漏洞)。敏锐的读者会注意到这些内部汇总中的漏洞数量加起来是 316,比我们宣布使用 Claude Mythos Preview 发现的 271 个多。这是因为我们的安全团队每天通过结合以下手段攻击 Firefox 来查找新漏洞:(a) 模糊测试系统 (b) 手动检查 (c) 跨多种模型的这种新代理管道。我们在 4 月的发布中总共修复了 423 个安全漏洞。除了两周前宣布的 271 个漏洞外,还有 41 个外部报告的漏洞,其余 111 个在内部发现,大致分为三部分: 1. 使用此管道使用 Claude Mythos Preview 发现但在 Firefox 150 以外的发布中修复的漏洞 2. 使用此管道使用其他模型发现的漏洞 3. 使用模糊测试等其他技术发现的漏洞 请注意,我们还单独向 Anthropic 直接授予了 3 个 CVE(CVE-2026-6746, CVE-2026-6757, CVE-2026-6758)。这些是几个月前出色的 Anthropic Frontier Red 团队发送给我们的漏洞修复 (https://blog.mozilla.org/en/firefox/hardening-firefox-anthropic-red-team/),我们按照正常流程为每个分配了唯一的 CVE。 ### 安全评级是什么意思? 作为补充上下文,我们应用安全严重性评级 (https://wiki.mozilla.org/Security_Severity_Ratings/Client) 从关键到低级,以指示漏洞的紧急程度: - sec-critical 和 sec-high 分配给可以通过正常用户行为(如浏览网页)触发的漏洞。我们不在这两者之间做*技术*区分,但 sec-critical 漏洞保留给公开披露或在野外已知被利用的问题。 - sec-moderate 分配给否则会被评为 sec-high 但需要受害者执行不寻常且复杂步骤的漏洞。 - sec-low 分配给属于

相似文章

幕后:使用 Claude Mythos 预览版强化 Firefox

Simon Willison's Blog

Mozilla 借助 Claude Mythos 预览版系统性地发现并修复了 Firefox 中数百个安全漏洞,使其漏洞修复率从每月约 20-30 个大幅提升至 2026 年 4 月的 423 个。

引用 Bobby Holley

Simon Willison's Blog

Firefox 150 随 Anthropic 的 Claude Mythos Preview 发现的 271 个安全修复一同发布,标志着防御性安全的一次重大 AI 驱动胜利。