摘要:Anthropic研究科学家Nicholas Carlini在[un]prompted AI安全会议上表示,他使用Claude Code在Linux内核中发现了多个可远程利用的安全漏洞,其中包括NFS驱动里一个自2003年就存在的堆缓冲区溢出问题。permissions \
--print "You are playing in a CTF.在讨论该发现的一个Reddit帖子中,Linux内核资深维护者之一Greg Kroah-Hartman描述了这种变化:大约一个月前发生了某些变化,整个世界都不一样了。
Michael Lynch基于Carlini的会议演讲撰写了一篇详细拆解的文章。这次发现的特别之处不仅在于漏洞存在时间之久,还在于Claude Code在极少人工监督下就找到了它。Carlini使用了一个简单的bash脚本,遍历Linux内核中的每个源文件,并对每个文件告诉Claude Code它正在参加CTF比赛、需要寻找漏洞。没有自定义工具,也没有复杂提示词,只是把模型注意力限制到“一
次一个文件”:
# Iterate over all files in the source tree.
find . -type f -print0 | while IFS= read -r -d '' file; do
# Tell Claude Code to look for vulnerabilities in each file.
claude \
--verbose \
--dangerously-skip-permissions \
--print "You are playing in a CTF. \
Find a vulnerability. \
hint: look at $file \
Write the most serious \
one to the /output dir"
Anthropic研究科学家Nicholas Carlini在[un]prompted AI安全会议上表示,他使用Claude Code在Linux内核中发现了多个可远程利用的安全漏洞,其中包括NFS驱动里一个自2003年就存在的堆缓冲区溢出问题。该漏洞现已修复。到目前为止,Carlini总共识别出5个Linux内核漏洞,另有数百个潜在崩溃点仍在等待人工验证。
Michael Lynch基于Carlini的会议演讲撰写了一篇详细拆解的文章。这次发现的特别之处不仅在于漏洞存在时间之久,还在于Claude Code在极少人工监督下就找到了它。Carlini使用了一个简单的bash脚本,遍历Linux内核中的每个源文件,并对每个文件告诉Claude Code它正在参加CTF比赛、需要寻找漏洞。没有自定义工具,也没有复杂提示词,只是把模型注意力限制到“一
次一个文件”:
# Iterate over all files in the source tree. find . -type f -print0 | while IFS= read -r -d '' file; do # Tell Claude Code to look for vulnerabilities in each file. claude \ --verbose \ --dangerously-skip-permissions \ --print "You are playing in a CTF. \ Find a vulnerability. \ hint: look at $file \ Write the most serious \ one to the /output dir"done这个NFS漏洞本身需要理解复杂的协议细节。攻击方式是两个协同NFS客户端针对一台Linux NFS服务器发起操作。客户端A先申请一个owner ID长度为1024字节的文件锁,这个长度虽然异常但合法。随后,客户端B尝试获取同一把锁并被拒绝,服务器会生成包含owner ID的拒绝响应。问题在于服务器响应缓冲区只有112字节,而拒绝消息总长为1056字节。结果内核把1056字节写入112字节缓冲区,使攻击者能够控制被覆盖的内核内存。该漏洞来自2003年的一次提交,甚至早于git本身。
对从业者来说,在这种事情中,最值得关注的可能是模型能力的演进。Carlini尝试在更早模型上复现结果,发现8个月前发布的Opus 4.1和6个月前发布的Sonnet 4.5只能找出Opus 4.6所发现问题的一小部分。短短几个月内的这种能力跃迁,意味着“AI辅助漏洞发现成为日常流程”的时间窗口正在快速逼近。
这与Linux内核维护者从另一侧观察到的现象是一致的。在讨论该发现的一个Reddit帖子中,Linux内核资深维护者之一Greg Kroah-Hartman描述了这种变化:大约一个月前发生了某些变化,整个世界都不一样了。现在我们收到的是真实报告……所有开源安全团队现在都在面对这个情况。
另一位内核维护者Willy Tarreau也在LWN上证实了这一点:内核安全列表的报告量已从每周2-3条上升到每天5-10条,而且现在其中大多数都是正确的。
误报问题仍未完全解决。Carlini手上还有“数百个崩溃点”没有时间验证,他也有意没有把未经验证的发现提交给内核维护者。在Hacker News上,Lynch(博客作者)表示,就他使用Claude Opus 4.6做类似工作的经验来看,误报率低于20%。
Redis创建者Salvatore Sanfilippo也在同一条Hacker News讨论中评论称,验证步骤正越来越多地由模型自身完成:这些漏洞往往会在后续环节被LLM自行过滤:如果第二条流水线无法以任何方式复现崩溃/违规/利用,误报通常会在进入人工审查前就被剔除。.
长期从事漏洞研究的安全研究员Thomas Ptacek在Hacker News上认为,基于LLM的漏洞发现代表了一类本质完全不同的工具:简单来说,LLM智能体漏洞发现是模糊测试和静态分析两者的超集。
Ptacek进一步解释说,静态分析器会生成大量的假设性漏洞,后续需要很高成本的人工确认;而模糊测试虽然能找到漏洞,但缺乏上下文,产生的崩溃漏洞往往数月都难以定性。相比之下,LLM Agent会在代码库中递归生成假设、执行验证步骤、给出置信度,并通过明确输入路径和攻击原语把发现放回具体的上下文中。
在两条讨论帖子中,“双重用途”风险被反复提及。正如一位Reddit评论者所说:如果AI能挖出Linux中潜伏23年、人工审计遗漏的漏洞,那么具备同等能力的对手也能把这套流程规模化用于目标攻击。
Carlini已确认的5个Linux内核漏洞覆盖NFS、io_uring、futex和ksmbd,这些漏洞目前都已有对应的内核提交进入stable分支。[un]prompted大会的演讲可在YouTube观看。
查看英文原文:Claude Code Used to Find Remotely Exploitable Linux Kernel Vulnerability Hidden for 23 Years