本周,由于两个新披露的PHP漏洞,欧洲多国政府网站和公共服务陆续下线。德国关闭了多个联邦网站,法国临时关闭了省级网站,比利时外交部禁用了其网站,荷兰的多家机构也出于预防措施下线了面向公众的服务。这一情况并不局限于欧洲,全球其他众多机构和企业也做出了类似反应。
他们都在等待一个尚未出现的PHP漏洞缓解方案。
事件起因是PHP2Shell:CVE-2026-109618和CVE-2026-109619。尽管社区迅速响应,PHP项目在10月21日上午为所有社区支持的PHP版本发布了修复程序,但更大的问题依然没有解决:据估计,有40%的PHP用户仍在使用不受支持的PHP版本,而与此同时,AI正在呈指数级加速CVE(通用漏洞披露)的发现速度。
“本周发生的事情与以往不同,这是开源生态系统中一场持久战的第一枪。”
我从事开源贡献已超过20年;我是Laminas项目的负责人,也是Perforce Zend和OpenLogic的首席产品经理,目前还担任PHP基金会董事会成员——这些经历让我见识过不少新型安全威胁。
但这次的情况确实与以往不同,这是开源生态系统即将面临的一场持久战的第一枪。
关于PHP2Shell你需要了解的事
CVE-2026-109618和CVE-2026-109619,目前被称为PHP2Shell,由内存不足(OOM)状态与PHP错误处理机制的组合触发,存在远程代码执行(RCE)风险。从PHP 5.4版本开始,所有版本至少受到其中一个漏洞的影响。这两个漏洞尤其令人担忧,因为它们存在于PHP本身,而非某个具体的应用程序、CMS或框架中;除了打补丁的PHP运行时之外,没有真正有效的缓解措施。
Wiz Research发现,这些漏洞可能使攻击者远程执行代码或泄露进程内存中的敏感信息,包括密码、身份验证令牌、API密钥和证书。这种暴露风险与运行在PHP之上的具体应用程序无关。
此外,独立复现了这些漏洞的Datadog Security Labs发现,应用层的身份验证无法阻止该攻击,因为PHP会在应用程序代码运行之前就处理恶意请求。在对CVE-2026-109618的复现中,研究人员报告称该请求“根本没有到达目标应用程序的代码”。
“即便拥有扎实的应用安全实践,你的应用程序仍可能面临风险,因为这种漏洞行为发生在应用层之下,也就是PHP运行时本身。”
这意味着,即使采取了良好的应用安全措施,应用程序仍可能暴露在风险之中,因为漏洞行为发生在应用层之下的PHP运行时内部。
解决方案就是打补丁。
社区的协作努力
8月份,当漏洞的全面影响变得清晰后,PHP生态系统安全团队、PHP基金会和各版本发布管理者为所有受支持的PHP版本提供了修复方案。在一次跨生态系统的协作中,他们还与LTS(长期支持)供应商(如Zend)合作,确保同步创建并发布所有补丁。
这是我从事开源工作20多年来首次见到这样的协作,我为社区朝这个方向努力而感到钦佩。正因为这一举措,任何使用社区已不再支持的PHP版本(8.1或更早版本)的用户,也能在不留任何安全缺口的情况下免受这些新披露CVE的威胁。
不幸的是,这种合作也依赖于信任,而这次信任受到了考验。CVE编号在10月20日被泄露,导致所有发布计划提前了一天。但截至10月21日协调世界时14:00,所有社区支持的PHP版本都已收到缓解这些漏洞的更新。我在Zend的团队,连同其他LTS供应商,也为已终止支持(EOL)的PHP版本发布了补丁。
虽然未来几周还需要更全面的应对措施,但这些缓解方案已经能在过渡期内,保障支撑政府、医院、金融机构、学校等机构运行的关键应用程序的安全与可用性。
AI正在改变漏洞研究的经济学逻辑
PHP2Shell正是一个典型案例,说明了当AI让高难度的安全研究变得更易上手时会发生什么——以及这种能力所伴随的风险。
作为OpenAI“修补地球”(Patch the Planet)计划的一部分,Calif使用GPT-5.6 Sol发现了一个严重的PHP漏洞。PHP维护者主导了修复和发布工作,研究人员和安全服务商则在披露前提供了测试、技术支持和协调工作。
“我们一直在漏洞披露、补丁发布与漏洞利用之间进行赛跑。PHP2Shell表明,这场竞赛可能、也很可能将变得异常艰难。”
值得注意的是潜在的规模变化。OpenAI表示,这些漏洞已经是其发现并正在着手解决的若干重大漏洞之一,并预计未来几个月内类似发现将“大幅增加”。
我们一直在漏洞披露、补丁发布与漏洞利用之间进行赛跑。PHP2Shell表明,这场竞赛可能、也很可能将变得异常艰难。
仍在运行已终止支持的开源软件?AI正在加大风险
在PHP2Shell这类漏洞发生后,最简单的建议就是立即升级。但实际运营情况要复杂得多。
PHP 8.1及更早版本已不再从PHP项目获得更新,尽管一些发行版和长期支持供应商会提供回移植的安全修复。对于关键应用程序而言,迁移到新的运行时可能需要更新框架、库、扩展和应用代码,还需要进行测试,以确保这些变更不会影响生产环境。
随着AI提升漏洞研究能力,这一差距正在不断扩大,因此这不仅仅是PHP的问题。PHP只是众多热门开源技术即将面临类似问题的第一个重大案例。例如,过去几个月中我们已经看到Spring漏洞报告激增,而Node.js和Python也在PHP2Shell曝光的同一天报告了严重漏洞。我还不得不提到Linus Torvalds近期的言论,他指出由于AI生成的漏洞报告数量激增,Linux安全邮件列表已变得难以管理。
在Perforce Software从事开源与PHP相关工作期间,我逐渐将LTS(长期支持)视为通向现代化的桥梁。它让团队能够在规划、测试和执行版本迁移的同时,持续应对安全漏洞。而随着漏洞发现速度的加快,无限期停留在不受支持的软件上将变得越来越难以自圆其说。
企业组织需要在力所能及的范围内保持系统更新,并针对那些无法立即升级的系统制定周密的安全策略。随着漏洞发现速度的加快,这一点将变得愈发重要。
接下来会发生什么?
对于PHP用户而言,当务之急很明确:升级到已修复的版本,或为不受支持的版本获取相应的安全补丁。但让我们从更长远的角度来谈谈。
人们可能会用PHP2Shell事件来证明PHP突然变得不再安全,但事实恰恰相反。本周社区与供应商的协同努力恰恰证明了这一点。相反,我们需要改变对安全问题的看法,因为类似的漏洞只会变得越来越常见。
“是的,我们发现复杂安全问题的能力已经提升。但我们的响应能力也必须跟上步伐。”
AI正在改变哪些安全调查具有可行性,以及这些调查能以多快的速度完成。当研究人员与项目及更广泛的生态系统合作解决漏洞时,这种能力十分宝贵。但这也给企业组织带来了更大的压力,要求它们清楚了解自己在运行什么系统、尽可能保持在受支持的版本上、建立清晰的漏洞响应流程,并为那些无法立即升级的应用程序制定应对计划。
是的,我们发现复杂安全问题的能力已经提升。但我们的响应能力也必须跟上步伐。