当你的 Agent 发现漏洞时
Anthropic的研究科学家Nicholas Carlini将Claude Code指向Linux内核源代码,并要求它查找漏洞。配置如下:一个10行的bash脚本,加上一个带有ASAN检测构建的Docker容器。循环遍历源文件,要求模型查找bug,然后转向下一个文件。13
正如Michael Lynch在演讲综述中详细介绍的那样2,结果是:在NFSv4 LOCK重放缓存中发现了一个可远程利用的堆缓冲区溢出漏洞,自2003年3月起就存在,比Git本身还要古老。两个协作的NFS客户端可以通过用1024字节的锁所有者ID溢出112字节的缓冲区来读取敏感的内核内存。Carlini在同一次扫描中至少还发现了四个内核漏洞。另外,相同的方法论产生了122个崩溃输入并发送给Mozilla,其中22个获得了CVE。3他描述说还有”数百个崩溃”他没来得及验证和报告。2
Carlini确认了这些漏洞并向维护者报告。他使用Opus 4.6找到了这些漏洞,这与从业者每天用于代码审查、重构和功能开发的模型属于同一类别。Carlini在2026年4月的[un]prompted AI安全会议上展示了这些发现。1
是的,AI agent能够发现人类专家几十年来都未能察觉的真实安全漏洞。 一位Anthropic研究员使用Claude Code配合一个10行的bash脚本,发现了Linux内核中存在23年的可远程利用堆缓冲区溢出漏洞,并从122个崩溃输入中产生了22个Firefox CVE。该方法论无需任何自定义框架:使用ASAN检测构建遍历源文件,并提示模型查找bug。
要点速览
Carlini的方法论极其精简:遍历源文件,提示Claude在每个文件中查找漏洞,用ASAN断言验证命中。Opus 4.6发现的漏洞数量远多于Opus 4.1(早8个月)或Sonnet 4.5(早6个月),这表明能力最近才跨越了某个阈值。2现在的瓶颈是人工验证,而非AI发现。这种转变对从业者如何构建安全hook、运行代码审查以及思考agent辅助审计具有直接影响。
关键要点
- 安全工程师: 这项能力是真实存在的,且发展迅速。如果您运行agent辅助的代码审查,那么您的PreToolUse安全hook比以往任何时候都更为重要。不是为了阻止Claude,而是为了管控它能对所发现内容做什么。
- Harness构建者: 验证瓶颈(“还有数百个崩溃我没验证”)是一个harness问题。自动化分类、去重和严重程度分级是下一层基础设施。
- 其他所有人: 同一个引入446倍性能回退的模型,也能发现23年人类审查都未能察觉的bug。这两点同时成立。
方法论
Carlini的方法不需要自定义安全框架、微调模型或专门的提示词。他将其描述为”一个10行bash脚本加上一个Docker容器”:3
- 使用ASAN(AddressSanitizer)检测编译目标
- 遍历源文件,使用模型评估安全相关性
- 对高相关性文件以夺旗赛的框架提示Claude Code
- 对每个目标运行多次扫描(根据代码库规模为5-20次)
- 使用自动化批评agent在披露前验证发现
夺旗赛的框架很关键。告诉模型”这段代码有bug”激活的模式,与”审查这段代码的问题”不同。开发者在日常使用中也注意到了同样的模式:当您告诉Claude存在问题时,它找到的问题比您询问是否可能存在问题时更多。2
这次扫描花费的是API代币,而非人月。Carlini使用一个普通的agent CLI发现了5个已确认的Linux内核漏洞和22个Firefox CVE。3正是那个为您编写单元测试和格式化import的工具。
能力阈值
最引人注目的发现是模型代际差异。Carlini尝试用较旧的模型复现他的结果:2
- Opus 4.6(演讲前约2个月发布):发现了堆溢出漏洞和多个额外漏洞
- Opus 4.1(早8个月):只发现了一小部分
- Sonnet 4.5(早6个月):只发现了一小部分
在模型代际之间,某个阈值被跨越了。将复杂代码库保留在上下文中、跨函数边界推理数据流、识别细微规范不一致的能力,似乎是涌现出来的,而非逐渐改进的。
Carlini直言不讳:”我这辈子从未发现过这类漏洞。这非常非常非常难。有了这些语言模型,我找到了一大堆。”2
悖论
同一套agent架构,既会引入性能回退——118个函数出现3倍到446倍的减速——又能发现几十年来专家级人工审查都未能察觉的安全漏洞。这是同一能力画像的两个互补面。漏洞研究本质上是对已知类别(缓冲区溢出、释放后使用、整型符号问题)的模式匹配,这正是LLM的强项。4性能优化则恰恰相反:需要对特定执行上下文、缓存行为和算法复杂度进行推理。这个模型能在数百万行代码中识别出缓冲区溢出,却无法告诉您对于您的访问模式,哈希表会比排序数组更慢。请据此构建您的harness,配置标记发现的安全hook,以及在提交前测量的性能hook。
验证瓶颈
Carlini最具揭示性的坦言是:”我在Linux内核中发现了太多bug,多到我无法全部报告,因为我还没验证它们。”2
瓶颈现在位于分类环节,而非发现环节。发现潜在漏洞的成本低于确认其真实性的成本。这种倒置为安全团队带来了新的基础设施问题:
发现是自动化的。一个agent能在数小时内扫描完整个代码库。
验证是手工的。每一个潜在漏洞都需要概念验证、影响评估和负责任的披露流程。
分类是缺口。将数百个agent生成的发现分拣为真实漏洞、误报和低严重性噪声,这项工作目前尚无好用的工具。
这种模式与agent辅助的代码审查如出一辙:agent产出原始输出的速度比人类评估的速度更快。价值不在于生成,而在于处理、过滤和路由输出的基础设施。
对harness构建者而言,这意味着下一个高价值的hook不是安全扫描器,而是安全分类系统:去重、严重程度分级、误报过滤,以及自动概念验证生成。管控agent输出的治理hook比扫描能力本身更重要。
这对从业者意味着什么
如果您在生产代码库上运行Claude Code,您已经在运行一个能够发现真实漏洞的系统。问题不在于这项能力是否存在,而在于您的harness能否处理agent所发现的内容。
三个实用举措:
在审查流水线中添加安全扫描。 Write/Edit上的PostToolUse hook可以对变更的文件触发针对性的安全扫描。该hook从stdin读取文件路径(Claude Code通过stdin将事件JSON传递给hook):
#!/bin/bash
# .claude/hooks/security-scan.sh
FILE_PATH=$(jq -r '.tool_input.file_path // empty' < /dev/stdin)
[ -z "$FILE_PATH" ] && exit 0
[ ! -f "$FILE_PATH" ] && exit 0
claude -p "This file has a security vulnerability. Find it and describe the impact: $FILE_PATH" \
--output-format json >> .claude/security-findings.jsonl 2>/dev/null &
exit 0 # non-blocking, runs in background
{
"hooks": {
"PostToolUse": [{
"matcher": "Write|Edit",
"hooks": [{ "type": "command", "command": ".claude/hooks/security-scan.sh" }]
}]
}
}
上面的hook只是起点,并非生产级方案。您需要添加去重、严重程度过滤和速率限制。但核心模式与Carlini的方法论一致:以针对性的提示词对文件进行循环遍历。3
构建分类基础设施。 未经严重程度分级的原始漏洞发现就是噪声。如果您的agent每次扫描产生50个发现,在人工查看列表之前,您需要自动化去重和优先级评分。瓶颈是harness问题,而非模型问题。
接受这一悖论。 同一个需要性能护栏的模型,在安全模式匹配方面确实非常出色。请设计您的harness去发挥其长处并弥补其短处。用安全hook扫描,用性能hook测量,用质量hook验证。每种hook都覆盖其他hook所忽略的部分。
那个23年的Linux漏洞并没有藏起来。它就在明处,在成千上万的工程师读过的文件中。模型发现了它,是因为大规模模式匹配正是这类系统擅长的事。教训不是agent在安全方面比人类更强,而是agent覆盖了不同的范围——而协调两者的harness才是让组合可靠的关键。
更新(2026年4月7日): Anthropic发布了Project Glasswing,一个名为Claude Mythos的新模型,它将Carlini的方法扩展到所有主流平台上数千个零日漏洞。Mythos仍仅限12家合作伙伴使用,尚未公开发布。上文涵盖的是Carlini的原始研究;续篇则涵盖产品化过程。
来源
常见问题
我可以用Claude Code复现Carlini的方法吗?
Carlini在播客访谈中记录了方法论。3核心循环是:用ASAN编译、遍历源文件、以夺旗赛框架提示Claude、验证命中。Carlini报告说Opus 4.6发现的漏洞数量远多于较旧的模型,因此使用其他代际模型的结果可能有所不同。
这是否意味着AI agent在发现安全bug方面比人类更强?
不是。这意味着agent覆盖了不同的范围。Agent擅长在大型代码库中对已知漏洞类别进行模式匹配。人类擅长理解新颖的攻击向量、业务逻辑缺陷和依赖上下文的安全属性。两者结合比任何一方单独都更强大。
我应该担心攻击者利用这项能力吗?
Carlini明确警告”一波大浪正在袭来”。帮助防御者发现漏洞的同一能力,攻击者也能使用。其不对称之处在于,防御者可以自动化分类和修补,而攻击者仍需开发漏洞利用。但发现环节的差距正在缩小。
-
Nicholas Carlini,”Black-hat LLMs,”[un]prompted AI安全会议,2026年4月。会议议程。Carlini展示了使用Claude Opus 4.6在Linux内核、Firefox、Ghost CMS和FFmpeg中自动发现漏洞的过程。 ↩↩
-
Michael Lynch,”Claude Code Found a Linux Vulnerability Hidden for 23 Years。”2026年4月。对Carlini在[un]prompted演讲的详细综述,包括NFSv4堆缓冲区溢出的技术细节、模型代际对比和验证瓶颈。 ↩↩↩↩↩↩↩
-
“AI Finds Vulns You Can’t,”Security Cryptography Whatever播客与Nicholas Carlini的对谈,2026年3月。方法论细节的主要来源:10行bash脚本、Docker/ASAN配置、每个目标多次扫描、122个Firefox崩溃输入(22个CVE)、用于验证的自动化批评agent。 ↩↩↩↩↩↩
-
Hacker News讨论。409分。关键观察:漏洞研究本质上是对已知类别的模式匹配,这与LLM的强项契合。 ↩