PHP2Shell漏洞:AI几天挖出两年的老Bug,全球约七成网站受波及
一个普通 Bug,放在程序员的待办列表里两年没人管,听起来似乎不是什么大事。毕竟,哪个软件项目没有一堆暂时修不完的小问题?只要不影响正常使用,很多 Bug 最后可能就这么被遗忘了。 但这次,情况有点不一样。 一个早在 2024 年就被发现的 PHP 内存错误,原本只被认为可能导致程序崩溃。没想到,今年在 AI 工具的帮
有个普通 Bug 在程序员的待办清单里躺了整整两年,一直没人处理,听着好像算不了什么。毕竟哪个软件项目没攒下一堆暂时修不完的小毛病?只要不影响正常使用,不少 Bug 最后就这么被抛在脑后了。
可这回的麻烦不一样。
2024 年就有人发现了一个 PHP 内存错误,当时普遍认为它顶多让程序崩掉。谁也没想到,今年在 AI 工具的协助下,安全研究人员居然从中找到了一条攻击路径:黑客能靠它在服务器上执行任意代码,甚至把服务器直接接管。
受波及的范围也不小,并不是什么边缘项目。NASA、维基百科、白宫等网站,加上大量用 WordPress、Drupal 等技术搭起来的站点,都可能被卷进来——这就是前不久引发网络安全圈关注的 PHP2Shell 漏洞。
谈及这起事件,网络安全初创公司 Tolmo 的 AI 安全研究负责人 Matt Suiche 给出了这样的判断:
“过去 40 年里由人类编写的所有遗留软件,其潜藏的 Bug 正在逐渐暴露出来。现在,是时候偿还这些技术债了。”
两年前没人当回事的 Bug,如今能让黑客控制服务器
先说说 PHP2Shell 是什么。PHP 诞生于 1994 年,最初是 Personal Home Page(个人主页)的缩写。
眼下新语言、新框架一茬接一茬,PHP 却依旧扛着大量互联网网站的运行,WordPress、Drupal 这些常见网站系统都离不开它——W3Techs 的网站技术统计显示,PHP 仍是广泛使用的服务器端脚本语言,全球约七成网站业务靠它支撑。

这次的 Bug,就藏在 PHP 自身的底层代码里。
2024 年,研究人员曾向 PHP 基金会报告过一个跟内存不足(Out-of-Memory,OOM)有关的 Bug。说白了,就是程序给某段数据分配的内存空间不够用。这类错误一般会让程序崩溃,影响正常运行,但看上去并不会直接威胁系统安全。
因此,这个 Bug 始终没被足够重视。直到今年 7 月,在 OpenAI 发起的 Patch the Planet 安全计划支持下,网络安全公司 Calif 对 PHP 做了一次独立安全审计。
研究人员 Ryan Austin 借助 AI 工具,几天时间就找到了这个内存错误背后另一种可能:攻击者能利用程序处理异常时留下的问题,进一步操纵内存,最终达成远程代码执行(RCE)。
这样一来性质就全变了:原先只会让程序崩掉的 Bug,如今可能变成攻击者进入服务器的入口;一旦利用成功,攻击者就能执行恶意代码、读取敏感数据,甚至装上恶意软件。
之后 Calif 又找出了其他可利用路径,并把问题报给了 PHP 基金会。网络安全公司 Wiz 和 OpenAI 也参与了后续的验证与分析。这些问题最终被归为 PHP2Shell,涉及两个严重的远程代码执行漏洞:CVE-2026-109618 和 CVE-2026-109619。
Wiz 还在 WordPress、Drupal 和 Joomla 等常见网站应用上做了验证,发现攻击者甚至可能无需身份验证就能发动攻击。换言之,问题不在某个网站的配置出错,而是 PHP 底层运行环境本身就带着安全隐患。
AI 究竟做了什么?把专家都嫌麻烦的活儿干了
一个问题随之而来:这个 Bug 已经存在两年,此前为什么没人把它挖成严重漏洞,AI 却能在短时间内找到突破口?
哥伦比亚大学计算机科学副教授 Suman Jana 的解释挺有意思:这个 Bug 并不神秘,难的是利用它需要做大量非常具体、非常繁琐的推理。
要真正利用内存错误,研究人员得先摸清目标程序的内存布局,找到能跳转的位置,再算出按什么顺序覆盖哪些数据,才能最终控制系统——这就像发现一扇门没锁,不等于你马上就能进屋,你还得弄清门在哪里、怎么打开,进去之后又该怎么行动。
Suman Jana 认为,AI 在这种需要反复分析和推理的任务上表现相当出色。他说,这算不上什么高深莫测的技术,只是需要大量令人头疼的细节分析,而 AI 恰好能把这些活儿处理好。
当然,他也强调,不能把这次成果简单归功于 AI 独立完成了漏洞挖掘:Calif、OpenAI 和 Wiz 的研究人员本身都有丰富的网络安全知识和 PHP 技术背景,AI 更多是充当辅助工具,帮他们更快完成分析。
效率层面的改变其实已经摆在那儿。Suman Jana 说,过去只有最拔尖的 0.1% 专家才做得动的活,如今有 AI 帮忙,他们能找出更多漏洞;水平还没到顶尖的研究者,也可以借 AI 进入更复杂的安全研究,不用每件事都从底层细节一点点啃起。
不过,这种能力也意味着,未来 Bug 被发现和利用的门槛可能进一步降低。
找 Bug 只花了几天,修漏洞却用了两个月
发现漏洞只用了几天,可修补起来远没这么轻松。PHP 基金会接到报告后,安排 4 名工程师前前后后忙了两个月,相关补丁的开发和测试才告完成。
Suman Jana 也说过,找 Bug 和修 Bug 之间本来就存在根本性的不对称:找 Bug,只要摸到一个能突破系统防线的入口就行;修 Bug 却得把所有相关攻击路径统统堵死,还不能让软件原本的功能受影响。
放到 PHP 这种开源项目身上,维护压力只会更大。
不少开源软件被全球大量企业和网站用着,自身却没有稳定的商业收入。维护者手里的人力和资金都有限,却要长期扛下安全审计、Bug 修复和版本维护这些活。如今 AI 又把挖 Bug 的成本往下压了一截:攻击者能在更短时间内翻出更多 Bug,维护者却没法凭空多出人手。
针对这一点,Jana 给出的建议是:多给防守方一些资源,让他们也能用上最先进的 AI 模型。
眼下已有一些前沿 AI 实验室向安全研究人员提供 Token 额度,帮他们寻找和分析 Bug。Jana 觉得这类支持还应该继续扩大,行业联合行动也好,直接捐资金、捐算力也好,都值得鼓励。
总不能让攻击者手里握着更先进的 AI 工具,防守方却还靠人力一点点排查。
专家担心:真正严重的事故,可能还没来
AI 到底能不能彻底改变软件安全维护的现状?业内专家并没有形成一致看法。约翰斯·霍普金斯大学计算机科学副教授 Matthew Green 就认为,在真正严重的安全事故发生之前,很多机构恐怕不会主动拿出足够资源去解决这些问题。
在他看来,这次的 PHP2Shell 还没严重到让所有人都警醒的地步。他甚至预测,2027 年初可能会出现一次影响普通人的重大安全事件,到那时企业和相关机构才会真正开始大规模投入资金。
普通用户眼下能做的其实很简单:及时更新软件。Matthew Green 特意提醒,手机或电脑弹出安全更新提示时,别想着下周再装,尽快完成更新。
PHP2Shell 后来的走向也说明,这次事件并非虚惊一场。AWS 的安全蜜罐系统曾在10月17日捕获相关Bug的攻击尝试;10月26日,CISA 又把两个 PHP2Shell 漏洞列入已知遭利用的漏洞目录。
目前 PHP 已发布修复版本,包括 PHP 8.5.12、8.4.27、8.3.36 和 8.2.35。对仍在使用受影响版本的网站管理员和开发者来说,及时升级已是当务之急。
HN 网友热议:AI 是在帮我们还“技术债”,还是制造更多麻烦?
换个角度看,PHP2Shell 真正让人心里发毛的,是它揭开了一层现实——几十年攒下来的老代码,安全性恐怕远不如大家以为的那样;一个陈年 Bug 忽然变成致命漏洞,倒还在其次。
而且,这次被翻出来的是 PHP,下一次又会轮到谁?
Hacker News(HN)上最近有个话题吵得挺热,标题叫“AI 正在逼我们还清 40 年的技术债”。到发稿时,这条讨论已经拿到 1305 个赞、749 条评论。开发者们聊来聊去,绕不开同一个疑问:
假如 AI 真能把几十年遗留代码里的 Bug 挨个翻出来,那软件行业等来的会是安全的新阶段,还是会掉进一场没完没了的修 Bug 拉锯战?

乐观的声音也不少。有网友就觉得,AI 大规模找漏洞,说不定还能顺手带出一些被国家级组织、商业间谍公司刻意藏起来的后门和零日漏洞(0-day):“短期内,开发者可能要面对一大堆新披露的 CVE 和补丁,日子不会太好过;但从长远来看,软件生态反而会变得更加安全。”
也有人觉得,既然 AI 将来可能把几乎所有 Bug 都找出来,那唯一合理的目标就是做出真正无缺陷的软件:靠 AI 加上形式化验证,让代码的正确性得到严格证明,这或许是最终出路。
不过,质疑的声音也不少。有开发者提了个很现实的问题:每多写一行代码,都可能变成新的“技术债”。
人会在“加这一行”和“不做这个功能”之间做痛苦的权衡,AI 却不会,它更倾向于把东西都加上去。近期的 Brotli 漏洞就是一例:一个实际上很少有人真正需要、甚至没被业务使用的组件,只因被广泛打包进各种软件和系统,最终让大量环境暴露在攻击风险之下——从 IIS 到 Caddy,都可能受影响。
更有网友抛出一个十分尖锐的问题:AI 到底是在帮我们偿还“技术债”,还是把我们送进了一条永无止境的修 Bug 生产线?不是所有技术债都能靠一个小补丁解决,很多问题牵扯系统架构调整,甚至需要重新开发。
就算 AI 能持续找出问题、修好问题,可代码改动一旦大起来,新 Bug 也可能跟着冒出来。说到底,如果 AI 没法一次就把真正靠得住的软件做出来,开发者就只能在「发现 Bug—修复 Bug—出现 Bug—继续修复」里来回打转,一遍又一遍。
这场讨论眼下显然还没有定论。
不过有件事确实该认真想一想:AI 随手就能写出几千行代码,那我们是不是更该慎重判断,哪些代码是真有必要留下的?AI 让写代码这件事越来越便宜,可代码背后的维护开销和安全责任,并不会跟着一起变轻。
参考链接:
https://spectrum.ieee.org/ai-in-cybersecurity-php2shell-vulnerability
https://news.ycombinator.com/item?id=50364336