登录

PHP致命漏洞事后复盘:两年前就已发现!维护者却知情不报


速读:攻击者无需任何登录凭证,仅凭精心构造的HTTP请求即可在服务器上执行代码。
2026年11月05日 10:45

快科技11月5日消息, 据PHP基金会事后分析报告,一对被统称为PHP2Shell的严重PHP引擎漏洞(CVE-2026-109618与CVE-2026-109619),其核心缺陷早在2024年的一次代码审计中就已被发现。

然而,当时由于未能证明该缺陷可被利用,修复工作并未启动,漏洞在生产环境中又沉寂了两年。

两个漏洞的CVSS v4.0评分均为9.2,属于预认证远程代码执行级别。攻击者无需任何登录凭证,仅凭精心构造的HTTP请求即可在服务器上执行代码。

漏洞根源在于PHP处理致命错误和内存溢出后的状态恢复过程:一次请求因内存不足而中断后,PHP未能安全清理内部残留状态,后续请求会复用已被释放的内存指针,最终导致代码执行。

真正让风险从理论变为现实的是AI的介入。2026年8月,OpenAI的“Patch the Planet”计划联合安全团队,在AI辅助代码审计中重新发现了这一内存管理缺陷,并在两周内完成了人类开发者两年未能做到的利用链构造。

到8月下旬,针对默认配置的WordPress、Drupal和Joomla的无认证远程代码执行均已被实际验证。

此次漏洞的影响范围极广。PHP承载了全球约70%的网站,而受影响的代码路径可追溯至2012年发布的PHP 5.4,意味着此后十余年的PHP版本至少中了一个漏洞。

更严峻的是,在漏洞公开时,仍有约73%的在线PHP安装运行的是已停止支持、无法获得安全补丁的版本。

PHP官方已于2026年10月21日发布修复版本(8.2.35、8.3.36、8.4.27、8.5.12),但对于那些无法升级的遗留系统,关闭session.upload_progress或设置memory_limit=-1只能收窄攻击面, 并不能从根本上消除缺陷。

一个2024年就被摆上桌面的内存安全问题,因为缺乏“可证明的利用方式”而被搁置,最终在AI的放大下演变为一场波及数十亿网站基础设施的危机。

PHP2Shell的事后复盘指向的并非某个单一代码错误,而是一个更普遍的结构性困境: 当维护资源有限、遗留系统庞大,且攻击者的工具链正被AI加速时,“知道有问题但暂时修不了”的代价,正在被成倍地放大。

主题:漏洞