Anthropic 最近因为一项安全研究登上了新闻头条:他们声称 Claude Mythos 完成了“首个由 AI 发现并成功利用的远程内核漏洞”。
这个说法听起来相当震撼。
于是我们开始追踪:Mythos 究竟是怎么做到的?
结果发现,它找到的其实是一个已经存在了将近 20 年、几乎明晃晃摆在那里却没人注意到的老漏洞。
下面我们来拆解 Mythos 到底做了什么,以及这件事真正意味着什么。
Claude Mythos 到底发现了什么?
在 Anthropic 关于 Claude Mythos 的最初文章中,他们提到了多个由 Mythos 发现并利用的漏洞。
其中技术细节最完整的,是 CVE-2026-4747 —— 一个存在于 FreeBSD 网络文件系统中的远程代码执行漏洞(RCE)。
这类网络文件系统广泛部署于企业和科研机构的本地存储系统中,因此影响范围并不小。
漏洞本身是一个非常经典的“教科书级”漏洞:栈缓冲区溢出(stack overflow)。
更关键的是,FreeBSD 默认并未启用某些现代安全防护机制,例如:
- KASLR(Kernel Address Space Layout Randomization)
- Stack Canary(栈金丝雀)
这使得漏洞利用难度进一步降低。
问题核心出现在 svc_rpc_gss_validate() 函数中。
函数内部会把 RPC Header 重建到一个仅有 128 字节的栈缓冲区 rpchdr[] 中:
int32_t rpchdr[128 / sizeof(int32_t)];
其中:
- 前 32 字节用于固定 RPC Header
- 剩余仅 96 字节可供 credential body 使用
但程序随后直接执行:
memcpy((caddr_t)buf, oa->oa_base, oa->oa_length);
却完全没有检查 oa_length 是否超过剩余空间。
这意味着:
只要 credential body 超过 96 字节,就会发生栈溢出。
攻击者可以进一步覆盖:
- 局部变量
- 保存寄存器
- 返回地址
最终实现远程代码执行。
而 FreeBSD 给出的修复补丁也极其简单:
if (oa->oa_length > sizeof(rpchdr) - 8 * BYTES_PER_XDR_UNIT)
return (FALSE);
一句边界检查。
就是这样一个漏洞,却在内核里潜伏了很多年。
这不禁让人产生一种不安:
还有多少类似的“深层内核漏洞”,至今仍然没人发现?
svc_rpc_gss_validate 究竟是什么?
要理解这个漏洞,需要回到很久以前。
这段代码的历史可以追溯到 Sun Microsystems 在 1980 年代开发的:
- ONC RPC(Open Network Computing Remote Procedure Call)
- NFS(Network File System)
随着 90 年代网络规模迅速扩大,Sun 的 RPC 与 NFS 几乎成为行业标准。
1995 年,Sun 将 ONC RPC 移交给 IETF 标准化。
随后,IETF 工作组在 1997 年发布了 RPCSEC_GSS 协议(RFC 2203)。
而相关开源实现,尤其是 NFSv4 与 RPCSEC_GSS 的大量代码,则由密歇根大学 CITI 实验室完成。
直到今天,你仍然可以在 MIT Kerberos 的源码头部看到这些版权声明:
Copyright (c) 2000 The Regents of the University of Michigan.
而 FreeBSD 中的相关实现,与 MIT Kerberos 中的代码几乎完全一致。
换句话说:
很多代码,其实是“复制”过来的。
等等……这不是一个老漏洞吗?
问题来了。
如果 FreeBSD 的代码和 MIT Kerberos 高度相似,那么 Mythos 发现的漏洞,MIT Kerberos 是否早就出现过?
答案是:
没错。
而且早在 2007 年就已经有人修复了。
欢迎来到:
CVE-2007-3999
NIST 对该漏洞的描述如下:
MIT Kerberos 5 中的 svcauth_gss_validate 函数存在栈缓冲区溢出漏洞,攻击者可以通过构造超长 RPC 消息导致远程崩溃,甚至可能执行任意代码。
看到这里,你应该已经发现不对劲了。
因为这个漏洞描述,与 Mythos “新发现”的 CVE-2026-4747 几乎一模一样。
而更夸张的是:
两个漏洞的核心代码几乎完全一致。
2007 年 Kerberos 漏洞代码
u_char rpchdr[128];
if (oa->oa_length) {
memcpy((caddr_t)buf, oa->oa_base, oa->oa_length);
}
2026 年 FreeBSD 漏洞代码
int32_t rpchdr[128 / sizeof(int32_t)];
if (oa->oa_length) {
memcpy((caddr_t)buf, oa->oa_base, oa->oa_length);
}
甚至连修复方式都非常相似:
if (oa->oa_length > MAX_AUTH_BYTES)
return (FALSE);
这意味着:
Claude Mythos 所“发现”的漏洞,很可能本质上是一次“重新发现”(rediscovery)。
它并不是凭空创造出了一个全新的漏洞利用思路。
而更像是:
AI 在训练数据中见过旧漏洞后,通过模式匹配,把类似代码中的同类问题再次识别了出来。
这其实比“AI 创造力”更值得警惕
很多人会问:
所以 Mythos 其实只是“背答案”?
这个问题其实没那么重要。
真正值得注意的是:
AI 并不需要具备真正的人类式创造力,也足以造成严重安全威胁。
只要它:
- 能识别危险模式
- 能自动化扫描代码
- 能批量生成 exploit
- 能组合历史漏洞知识
它就已经足够危险。
事实上,这种“组合式创造力(combinatorial creativity)”本身就非常强大。
因为现实世界的软件系统,本来就建立在大量:
- 复制代码
- 历史遗留模块
- 老旧协议
- 无人维护组件
之上。
AI 非常擅长在这些巨大的代码海洋中寻找“相似性”。
而安全漏洞,恰恰具有极强的模式特征。
这意味着:
即使 AI 不能真正“发明”新漏洞,它依然可以:
- 更快发现旧漏洞变种
- 更快生成攻击链
- 更快自动化利用
而这已经足以改变整个网络安全行业。
真正危险的,其实是“被 AI 放大的旧代码”
文章最后提出了一个非常关键的观点。
FreeBSD 的漏洞,本质上并不是 AI 制造的。
真正的问题是:
20 多年前的人类程序员,把不安全代码留在了系统里。
而到了 2026 年:
AI 又开始帮助开发者自动生成更多代码。
于是,一个危险循环出现了:
- AI 学习旧代码
- AI 复制旧模式
- AI 生成新系统
- 新系统继续继承历史漏洞
换句话说:
未来最大的安全风险,很可能不是 AI “创造”了全新的漏洞。
而是 AI 正在以前所未有的速度,把历史世界里的不安全代码重新扩散到新的基础设施中。
这才是真正令人不安的地方。
AI 会让攻击变得极其廉价
过去,漏洞利用往往需要:
- 高级逆向能力
- 深厚 exploit 开发经验
- 长时间调试
但 AI 出现之后:
攻击门槛正在快速下降。
模型不需要像顶级黑客那样“灵光一现”。
它只需要:
- 自动扫描
- 自动匹配
- 自动生成 payload
- 自动尝试利用
就已经足以造成严重破坏。
无论是:
- 企业网络
- 工业系统
- 电力基础设施
- 医疗系统
都可能因此面临更低成本、更大规模的攻击。
防守方唯一的机会:Agentic Defense
文章最后的结论其实相当现实:
现在已经不重要:
AI 发现的漏洞到底算不算“真正原创”。
因为只要它能造成破坏,就已经足够危险。
而唯一可行的方向,是让防守方也开始使用 Agentic AI。
也就是说:
既然攻击者会使用 AI:
- 自动发现漏洞
- 自动利用漏洞
- 自动扩展攻击
那么防守方也必须:
- 自动审计代码
- 自动发现风险
- 自动修复问题
- 自动部署补丁
未来真正领先的组织,不一定是拥有最多安全工程师的公司。
而是最先完成“AI 化防御”的组织。
因为在 AI 时代:
修补漏洞的速度,必须快过漏洞被利用的速度。