花费超 1 万美元,用 AI 代理检测编译器代码,轻松发现数百漏洞! 为乐趣而非利益寻找编译错误过去十年作者在谷歌、Waymo 和 OpenAI 从事机器学习编译器相关工作。过去一周作者经历了职业生涯中最令人不安的事情之一一个下午花费超 1 万美元让 AI 代理对编译器代码进行检测在 LLVM 中发现数百个可能存在的漏洞包括许多编译错误至少有一个问题相当严重。个人项目在 LLVM 中寻找漏洞2026 年 1 月作者开展个人项目尝试在 LLVM 中寻找漏洞。作者和 Codex 合作编写了一个模糊测试器基本思路是生成随机程序让其通过编译器部分流程检查编译后的程序是否与原始程序执行相同操作。作者花了几周时间在 LLVM 的 instcombine 中发现并修复了五个漏洞。之后模糊测试器找到新漏洞的速度变慢作者便失去了兴趣。转战 ptxas 编译器2026 年 5 月中旬作者作为承包商加入 SemiAnalysis决定尝试将同样的技术应用于 NVIDIA 的底层编译器 ptxas。作者预计这次成果可能不如对 LLVM 进行模糊测试原因有模糊测试器可能陷入“困境”闭源编译器修复漏洞较繁琐使用 ptxas 需从头到尾运行整个编译器可能降低发现漏洞的可能性使用 LLVM 可添加检测信息而对 ptxas 进行模糊测试时作者未使用相关模式只是进行纯粹的无向模糊测试。然而三天内作者就发现了 40 个 ptxas 编译错误的程序一周后这个数字增加到约 80 个。模糊测试器编写容易的原因据作者所知这是 ChatGPT 5.2 和 5.5 之间的差异造成的。作者全程通过与大语言模型LLM交流来编写模糊测试器LLM 承担了修改模糊测试器、最小化测试用例等繁琐工作作者只需使用 /goal 让它循环运行。在 LLVM 的 AMDGPU 后端寻找漏洞作者尝试在 LLVM 的 AMDGPU 后端寻找漏洞速度与在 ptxas 中发现漏洞的速度大致相同。后来作者改用 SemiAnalysis 的 Claude 账户发现 Opus 4.7 和 ChatGPT 5.5 在质量上没有区别。报告漏洞与修复情况作者将发现的漏洞报告给了 AMD 和 NVIDIA。截至撰写本文时AMD 已经修复了其中五个漏洞由于其编译器是开源的作者可以立即应用这些修复。让 Claude 通读 LLVM 代码寻找漏洞作者的 ptxas 和 AMDGPU 模糊测试器开始变慢作者让 Claude 通读 LLVM 代码来寻找漏洞。Claude 每四分钟就能发现一个漏洞相比之下此时模糊测试器要花几个小时才能找到一个新漏洞。作者对 x86 后端也做了同样的操作结果发现漏洞的速度几乎达到了每分钟两个。漏洞的重要性与成本自动查找漏洞面临“这些漏洞重要吗”的问题。代理发现的漏洞平均严重程度低于模糊测试器发现的漏洞但有一个极其可怕的情况LLVM 会将原子存储操作转换为两个非原子存储操作通过模糊测试很难发现这个漏洞。通过与 LLM 交流编写的模糊测试器成本相对较低而让大量子代理读取代码的成本较高作者在几个小时内就花费了超过 1 万美元。尽管通过这种方式发现的漏洞平均严重程度低于模糊测试发现的漏洞但代码检查能够发现一些通过模糊测试很难发现的漏洞类别对作者来说很有价值。总结与思考作者认为这不仅仅是“有了足够多的子代理所有漏洞都能轻易被发现”这么简单也许教训是五个月前不可能做到的事情现在只是“代价高昂”而已。作者预计在接下来的几个月里预算不足的人与有预算的人在探索可能性空间上的差距会越来越大。最后作者思考了六个月后 SemiAnalysis 愿意为令牌支付多少钱以及那些没有预算或者不愿意支付的个人和公司的生活会变成什么样。同时作者不确定给 Opus 5.7甚至 4.7足够的令牌它能否通过读取汇编代码来发现 ptxas 的漏洞。