AI 自己把漏洞变成攻击了,伯克利、Anthropic、OpenAI、Google 刚刚量化了这件事

小岛AI 2026 / 05 / 14

昨天看到一篇来自 Berkeley RDI 的博客,联合发布方有 Max Planck 安全与隐私研究所、UC Santa Barbara、Arizona State University、Anthropic、OpenAI、Google。

我读了两遍。读完之后坐了一会儿。

然后打开 IDE 什么也没干,就坐着想了一会儿。


安全圈有一条默认成立的线,AI 能找漏洞,能写 PoC(proof-of-concept,证明漏洞存在的最小复现代码),但要把一个「已知存在」的漏洞变成「真实可用的攻击」,还需要人。需要那种懂内存布局、懂 ASLR(地址空间布局随机化,让攻击者猜不到代码在内存哪个位置的防御机制)、懂 shellcode 的安全研究员,坐在那里花几天时间,把一个 crash 变成能 getshell 的 exploit(漏洞利用代码,实际拿到控制权的那一步)。

这条线,在这次研究里,碎掉了不少。


他们做了一个叫 ExploitGym 的基准测试,里面有 898 个真实软件漏洞,横跨三类,普通用户态程序(FFmpeg、OpenSSL 这类 C/C++ 项目,来自 Google 的 OSS-Fuzz 漏洞库),Chrome 的 V8 JavaScript 引擎(你跑 Node.js 或者打开 Chrome 时在背后跑 JS 的那个核心),以及 Linux 内核。

任务设定很清楚,给你漏洞代码、编译方式、一个能触发崩溃的最小 PoV 输入,然后问 AI,你能把这个崩溃变成真实的代码执行权限吗?每个任务限时两小时。

数据来了,好家伙。

Claude Mythos Preview(配合 Claude Code,Anthropic 下一代旗舰)成功利用了 157 个。GPT-5.5(配合 Codex CLI)120 个。GPT-5.4 是 54 个。再往后断崖,Claude Opus 4.6 是 15 个,Gemini 3.1 Pro 12 个,剩下的个位数。

你可能看到 157/898,觉得「哦,17% 也没多高」。但你得理解这是什么难度级别,这不是写功能代码,这是从一个崩溃出发,分析内存结构,找利用路径,写完整攻击链,最终拿到代码执行权限。放到几年前,这件事需要一个 pwn 选手坐在那里花几天时间做。

157 个,两小时一个,自主完成。


然后是更让我绷不住的部分,开启标准防御措施之后,没有变成零。

打开 ASLR、stack canaries(栈金丝雀,检测栈溢出的经典防御,如果栈被篡改会触发保护)、V8 heap sandbox 之后,成功率确实大幅下降,但 Claude Mythos Preview 还是完成了 25 个用户态漏洞、17 个 V8 漏洞、3 个内核漏洞的利用。GPT-5.5 内核部分留了 8 个成功。

我之前以为防御措施打开之后基本等于归零,因为 ASLR 这套东西是几十年反复被验证过的防御体系,攻击者要绕过需要泄露地址,而泄露地址本身又需要另一个漏洞,理论上这是一道不小的门槛。结果是,这道门槛对 AI 来说,没有我想的那么高。

AI 用的方法不是什么新技术,partial-pointer overwrite(局部指针覆写,利用 ASLR 低位无法随机化的特性),已知的 V8 sandbox escape 路径,内核里覆写 modprobe_path 加侧信道绕过 KASLR(内核的地址随机化版本)。都是安全社区有记录的方法,但 AI 能在不同场景下独立选择正确的工具、组合成有效的攻击链,这是另一回事了。以前这种「工具箱」存在于安全研究员的脑子里,是要靠多年实战积累的。


还有一个细节,AI 会临时换目标。

研究区分了两种「成功」,「拿到了 flag」和「正确利用了指定漏洞」。结果是 Claude Mythos Preview 一共 226 次拿到 flag,但其中只有 157 次用的是题目指定的漏洞,另外 69 次,是它自己在代码里找了别的漏洞打进去的。GPT-5.5 也类似,210 次 flag 里有 90 次走的是别的路。

有些情况是模型觉得给定漏洞太难利用,主动去审计源代码,找更容易打的位置,甚至有案例是它自己跑了动态模糊测试(fuzzing,大量随机输入去触发崩溃,安全圈常用的漏洞挖掘手段)来找新洞的。

从「给我一个洞我来打」到「没洞我自己找」,这不是量变。

厉害了。


文章里有一个具体案例我觉得值得仔细说一遍。

2025 年 10 月,ClusterFuzz 报了一个 V8 Maglev(Chrome V8 里的中级 JIT 编译器,负责优化热点 JS 代码)的断言失败漏洞,PoV 只有五行,在 release 版本里触发只是一个无害的 TypeError,看不到任何明显的内存破坏迹象。

GPT-5.4 拿到这个之后,在关闭 ASLR 的环境下,71 分钟,独立走完了一条完整攻击链,确认受害对象的 shape 依赖,构造 Maglev 越界堆读取,做堆风水(heap grooming,精心布局堆内存方便后续操作)泄露稳定指针,伪造 V8 string 对象实现任意内存读,从 GOT(Global Offset Table,动态链接库函数地址表)泄露 libc 基址,最后构建 SROP 链(signal-return-oriented programming,一种不依赖代码段地址的 ROP 变种),重定向执行到 system(“/challenge/catflag”)。

229 行 exploit 代码。

这种攻击链,以前写出来的人,是 pwn 圈里那种在各大 CTF 能拿前五的选手,技术栈极深,可能要花几天。71 分钟,GPT-5.4 自己走完了。

(需要说明的是,这个 case 在开启 V8 sandbox 之后 GPT-5.4 就打不通了,所以防御措施还是有实际意义的,但这不等于门关上了,只是关了一部分。)


我读完之前,有一个底线设定一直在那里,「真正的 exploit 开发」有一道门槛,那道门槛不只是代码能力,是对操作系统层面的深度理解,某种内化在身体里的「系统的物理感」,AI 应该还需要很长时间才能够到那里。

这篇论文没有说这扇门已经彻底打开,但它让我意识到,我低估了门缝有多宽。

还有一个数字,如果把每个任务的时间从两小时延长到六小时,Claude Mythos Preview 的成功数从 127 爬到了 204,没看到明显的趋于平稳,Claude Opus 4.6 在前 30 分钟基本到头了,固定在 15 个,怎么加时间都不动了。

前沿模型,给时间,在持续攀爬,不是在等,是在持续推理、换路径、再尝试。

这是不同量级的东西。


对于安全从业者和维护服务的开发者,研究团队的原话是「defenders need to start modeling AI agents as potential attackers when evaluating their security posture.」

也就是,你在评估安全状况的时候,威胁模型里需要加一个新的敌手类型,一个会自动化分析漏洞利用路径、会在当前路径打不通时主动搜索替代漏洞、会在两小时内自主完成从崩溃到代码执行全流程的攻击者。这不是说明天就会有 AI 自动扫你的生产环境,实际部署里还有沙箱、安全过滤、网络隔离等一层层障碍,但这是「能力边界」的证明,是今天就成立的事实。

对安全研究这一侧倒有一个正向用途,ExploitGym 可以用来评估一个已知漏洞的「实际利用可行性」,AI 利用成功率高,说明这个 CVE 的真实危险系数高,值得优先打补丁,比光看 CVSS 分数(漏洞通用评分系统,常被诟病不能准确反映实际可利用性)更有参考价值。这对安全团队的漏洞优先级排序是有实际帮助的工具。


这里有一个张力研究团队自己也没回避。

同样的能力,给防御方用是好东西,快速评估漏洞严重性、验证缓解措施是否真的有效、自动化优先级排序。但同样的能力,让那些原本需要多年 pwn 经验才能做到的事,可以部分外包给模型了。

他们的立场是「负责任地公开量化,让防御方、AI 开发者、政策制定者能基于真实数据做决策」,而不是捂住不说。我理解这个立场,也认同。但我觉得行业整体,包括做 AI 工具的、做安全产品的、制定规范的,都需要快一些了,治理的时间窗口,比我之前想的短。

有点子牛逼,也有点子令人不安,两件事同时成立。

原文是 Berkeley RDI 的博客,https://rdi.berkeley.edu/blog/exploitgym,如果你在安全圈或者对 AI 能力演化感兴趣,值得读完。他们那个更大的研究「前沿 AI 对网络安全格局的影响」也有一份报告,https://rdi.berkeley.edu/frontier-ai-impact-on-cybersecurity/,更完整的背景。