两个存在十年的内存漏洞,而非新的设计缺陷
PHP2Shell并非单一漏洞,而是两个:CVE-2026-109618是上传进度反序列化器中的释放后使用漏洞,CVE-2026-109619则是与致命错误回溯生成过程中OPcache类型混淆相关的释放后使用漏洞。两者均可追溯至PHP 5.4.0版本的代码,这意味着这一内存安全缺陷在互联网最广泛使用的语言运行时中潜伏了大约十年,才被人类或机器发现[1]。两个漏洞的CVSS v4.0评分均为9.2,表明仅需一个未认证的HTTP请求即可在任何应用代码运行前触发漏洞,影响PHP-FPM、Apache mod_php、php-cgi、FrankenPHP和LiteSpeed等部署环境[4]。
该漏洞类别的危险之处在于,当异常请求终止(例如内存耗尽的致命错误)导致PHP引擎处于损坏状态后会发生什么——本应被清除的陈旧指针和缓存条目反而可能被重用,研究人员已将由此可能导致的内存泄露(例如从已释放的工作进程内存中泄露会话cookie)与Heartbleed相提并论[3]。这种比较的意义不仅在于其名称带来的冲击力,更在于其操作层面的含义:与Heartbleed类似,这种漏洞无法通过Web应用防火墙完全中和,因为易受攻击的代码路径在PHP自身内部执行,早于任何过滤逻辑。



