添加新评论

漏洞躺了二十年,AI两天就挖出来了

PHP2Shell漏洞

一个存在了比大多数AI公司都老的漏洞

昨晚刷到PHP2Shell的消息时,我第一反应不是慌,是愣。两个9.2分的远程代码执行漏洞,影响全球约70%的网站,编号CVE-2026-109618和CVE-2026-109619。但最让我意外的不是漏洞有多严重,而是它的根因——2004年就有人发现过PHP内存限制机制里的安全问题。

二十年。一家互联网公司从创立到上市可能都用不了这么久。而这个漏洞从被发现到被真正证明可利用,花了二十年。

中间发生了什么?AI来了。

从"理论上危险"到"两天内可攻击"

完整时间线很值得看一遍。2004年,安全研究员Stefan Esser发现PHP内存限制机制中的远程代码执行漏洞,危险程度很高,但他没有公开完整利用程序。2020年,有人向PHP官方报告了编号#78876的问题,指出某些超长变量可能导致内存耗尽,但没引起足够重视。2024年,PHP基金会在一次外部安全审计中再次注意到这个问题,核心开发者意识到内存耗尽(OOM)场景下可能存在内部状态管理缺陷。

但每次都卡在同一个地方:理论上觉得危险,实际上找不到稳定的攻击路径。修复方案又涉及兼容性问题——有的方案会破坏现有应用,有的需要大量第三方扩展配合改动,有的可能引入新的拒绝服务风险。PHP基金会自己的复盘文章里用了一个词叫"结构性失败":不是没人知道问题存在,而是知道问题的人和能修问题的人之间,隔着资源、时间和生态兼容性三座山。

然后2026年夏天,两家安全公司几乎同时突破了。Calif用GPT-5.6 Sol,几天内就找到了远程代码执行路径。Wiz用Gemini 4 Argon加GPT-5.6 Sol,独立发现了同样的漏洞并在WordPress和Drupal环境里验证了攻击。8月11日两家同一天报告了相同的漏洞根因。

从2004年到2026年8月,"理论上危险"一直只是"理论上危险"。AI进场后,变成了"两天内可攻击"。

70%的网站靠11个人和73万美元养着

比起漏洞本身,更让我不安的是另一个数字。PHP基金会——维护着全球约70%网站技术底座的组织——2025年全年捐助收入73万美元,11名全职和兼职开发者。他们贡献了PHP核心代码库约42%的提交。

73万美元。一家中等规模的创业公司一轮天使融资都不止这个数。但这笔钱养着的是WordPress、Drupal、Joomla、MediaWiki(维基百科用的)背后那个编程语言的安全和演进。日本首相高市早苗亲自发X催打补丁,niconico和pixiv紧急下线,半个欧洲的政府网站拔网线。全球互联网的一次集体心跳加速,源头是一个年收入不到百万美元的基金会。

我自己维护过一个内部开源组件库,团队六个人,用了三年,最终因为业务调整停止维护了。那种感觉有点像——你知道下游有十几个团队在依赖你的东西,但你的KPI里从来没有"维护这个组件"这一项。PHP基金会的情况可能更极端:下游是整个互联网,而他们的KPI全靠自愿。

这种结构性脆弱不是PHP独有的。OpenSSL维护着全球HTTPS加密的基础,2014年Heartbleed漏洞爆发时,核心维护者也就那么几个人。Log4Shell让半个Java生态颤抖的时候,Log4j的主要维护者也是屈指可数。我们的数字世界不是建在钢筋混凝土上的,是建在"幸好有人愿意无偿维护"上的。用Coldplay那首Viva la Vida的歌词来说:I discovered that my castles stand upon pillars of salt and pillars of sand.

AI缩短的不是发现时间,是证明时间

这次事件里,360漏洞研究院有个判断我觉得很精准:AI加快的不是"发现漏洞"这一步,而是"证明漏洞可利用"这一步。

这两个步骤的差别很大。发现漏洞,相当于看到一栋楼的某面墙上有裂缝。证明可利用,相当于证明你可以从这条裂缝爬进去,打开保险箱,拿走里面的东西,而且全程不触发警报。前者需要眼力,后者需要一整套推理链条。

PHP这两个漏洞特别典型。它们不是那种一看就懂的输入验证漏洞,而是涉及异常处理流程、对象生命周期和跨请求内存状态的复杂逻辑问题。你需要把多个模块的执行顺序、状态残留、后续请求串起来分析,才能判断一处程序异常是否真的能被利用。单独测试任何一个请求都可能不会触发问题——只有当两个请求按特定顺序进入同一个工作进程,前一次请求留下异常状态,后一次请求读取了那片已释放的内存,漏洞才会暴露。

传统工具处理这类问题天然有短板。Fuzzing靠生成大量随机输入找异常,对需要多个条件连续触发的场景覆盖有限。静态分析擅长识别已知危险模式,但对跨模块、跨请求的复杂逻辑容易遗漏。人工审计最灵活,但受限于研究人员的精力和时间。

AI在这里的价值是:它能把分散在不同文件、不同模块中的代码逻辑关联起来,帮助研究人员将线索串联成可验证的攻击路径。过去一支顶尖安全团队可能需要几个月才能完成的漏洞验证工作,现在一名研究人员加上AI,一周内可能搞定。Wiz的说法更直接:构造完整利用路径的复杂程度"几乎超出了人类研究人员能够实现的范围"。

但360的专家也泼了冷水:AI给出的不是安全结论,而是需要验证的漏洞假设。推理链条上任何一步出错,整个结论就可能不成立。最终还是需要安全专家用代码审查、动态调试和实际测试来验证。

说白了,AI是一个极其强力的放大器,但它放大的不只是防御方的能力。

攻击者只需要找到一个突破口,防御方需要保护所有地方。这个不对称性在AI时代只会加剧——以前需要顶尖黑客团队几个月才能完成的工作,现在门槛降低了。Cloudflare已经在观察到小规模攻击行为。那些还没来得及打补丁的网站,尤其是还在跑旧版PHP(将近一半的网站用的是已结束支持周期的版本)的,基本上处于裸奔状态。

OpenAI在官方博客里还提了一句:这些漏洞只是我们已经发现并正在修复的一部分,未来几个月类似发现的数量将大幅增加。

不知道别的团队看到这句话是什么感受。我反正觉得,这不像是好消息。

You voted 5. Total votes: 21