10月21日,PHP官方紧急发布两枚安全补丁后,荷兰国家网络安全中心(NCSC)官网一度无法访问,荷兰众议院、芬兰政府部分站点断网,法国数据保护机构CNIL关闭网站,日本pixiv、Niconico进入紧急维护。当天出现的大面积站点下线,并非已确认遭到入侵,而是围绕高危漏洞展开的预防性处置。
引发这轮下线的是PHP官方当天下午发布的两枚漏洞补丁:CVE-2026-109618与CVE-2026-109619。两者在CVSS v4.0下的评分均为9.2,安全圈将其统称为「php2shell」。这两枚漏洞都属于未授权远程代码执行,攻击者无需登录,也不需要受害者进行任何操作,就可能让服务器执行指定代码。
从发现到修复约71天,最后24小时因泄密被迫提前
这次事件的冲击,不只来自漏洞本身,也来自披露与修复的节奏。公开信息显示,从发现到修复历时约71天,原定发布日期是10月22日,但在最后24小时内,因信息外泄,发布时间被压缩并提前。
10月20日约15:00(UTC),两个CVE编号开始在论坛和社交媒体流传,附带了错误的发布时间和错误的CVSS 10.0评分,实际评分为9.2,但当时尚未泄露技术细节。到20:00左右,安全公司Calif误发了一段演示攻击代码对多个目标运行的视频,副本随后在社交媒体扩散。PHP Foundation表示,这段视频帮助他人加快了攻击工具的开发。
同日19:30,PHP团队发布预告,并将发布时间提前到10月21日14:00(UTC)。预告称:「PHP安全团队提前通知:即将于2026年10月21日周三14:00 UTC发布安全更新,两个严重漏洞,均评为CVSSv4 9.2。建议PHP用户准备更新。若细节公开或出现活跃利用证据,将提前发布。」
当晚,安全公司watchTowr确认漏洞真实存在。其CEO Benjamin Harris表示:「鉴于敏感性,我们目前无法分享技术信息,但可以确认这些漏洞确实存在。」同一天,Hacker News上还出现了一则预告帖,后被删除。发帖者自称「除了『来源:信我,兄弟』之外没有任何证据」,但准确提到了两枚漏洞、两个CVE编号和披露日期,只是把评分写成了10.0。
原本还有两天的缓冲期,最终被压缩成一夜。
漏洞根因指向内存处理,mod_php风险最高
安全公司Wiz称,至少其中一枚漏洞存在于自PHP 5.4起的每一个版本中。不过,它的最初迹象出现在处理2024年审计报告问题时。
那次审计由Sovereign Tech Agency出资、OSTIF组织、Quarkslab执行,历时约两个月,共发现27项问题,其中17项为安全问题,包括3项高危、5项中危和9项低危,并产生4个CVE编号。报告明确写道,因预算限制,本次审计聚焦最关键的组件,而非全部代码库。
PHP Foundation后来说明,OOM问题的最初迹象,是一位受资助的核心开发者在处理Quarkslab审计报告中某个问题的修复时发现的。2024年,团队曾对该问题的可利用性做过理论推演,但没有找到具体攻击方式,之后又被其他更明确的问题盖过。
CVE-2026-109618的成因,是请求恰好耗尽PHP设定的内存上限时,处理过程被打断,留下只初始化了一半的内部数据,后续这段数据又被当作有效数据使用,进而造成内存破坏。CVE-2026-109619则发生在致命错误出现在错误时点,导致PHP内部状态仍指向上一个请求已释放的内存,同一工作进程处理后续请求时复用了这块内存,形成释放后使用缺陷。
所有处理网页请求的PHP安装都受影响,包括Apache的mod_php模块、PHP-FPM、php-cgi、FrankenPHP和LiteSpeed等运行方式。其中,mod_php被认为风险最高:未登录请求可在任何应用代码执行之前触发漏洞,而且已经在默认配置下演示出完整远程代码执行。攻击者可借此读取服务器进程内存中的密码、登录令牌、API密钥和证书。
AI辅助发现漏洞,但修复流程数月反复停滞
2026年8月11日,安全公司Calif研究员Ryan Austin上报了第一例可无条件远程代码执行的漏洞,根因与2024年发现的OOM问题相同;同一天,OpenAI也独立报告了同一根因。8月24日,Wiz另行提交报告;9月18日,OpenAI又报告了更多触发方式。
Calif研究员在发现过程中使用了OpenAI的GPT-5.6 Sol模型辅助审计。Calif首席执行官Thai Duong在8月11日致电PHP Foundation安全工程师Volker Dusch示警。OpenAI表示,据其所知,这是前沿AI首次在攻击者之前发现此类漏洞,为防守方打开了一个「防御者窗口」。Wiz联合创始人Ami Luttwak则称,这是「AI发现过的最严重漏洞」,并表示其复杂程度高到没有AI很难发现。
不过,修复工作并未顺利推进。PHP Foundation公开承认:「我们不会假装不是这样:这次延迟是一次结构性失败,原因既在安全团队的决策流程,也在资源不足。」团队按共识制运作,修复工作「在数月间反复停滞又重启」。
安全团队当时设计出多个彼此竞争的修复方案,每个方案都有明显代价:可能破坏向后兼容,可能引入新的拒绝服务风险,或者要求大量第三方扩展改动,以至于「看似无法协调」。团队也承认,他们「害怕选错方向的后果」。最终,这次修补涉及近200个文件、超过1万行代码,由PHP维护者主导,在保密状态下历时约两个月完成。
PHP Foundation提出的补救措施之一,是将安全团队决策机制改为多数决,并鼓励成员妥协。
10月21日当天,补丁、镜像与WAF规则先后上线
10月21日07:41(UTC),软件供应链公司Chainguard提前发布了包含修复的容器镜像,比协调披露时间早了六个多小时。PHP Foundation称,此举「无视了许多方数周的工作」。
PHP官方补丁实际约在13:35(UTC)上线,比计划的14:00早了几分钟。Cloudflare的网页防火墙(WAF)规则则在03:02(UTC)就已对免费和付费用户默认生效,比官方披露早约9小时。Cloudflare表示,这套规则同时使用请求与响应两类信号,以阻止攻击尝试并防止泄露数据外流。
Cloudflare首席技术官Dane Knecht说:「我们正看到早期攻击出现,并在新攻击方式出现时更新缓解措施。这只是权宜之计。」
多国机构选择下线,监管与安全机构同步发出警报
在补丁公开前后,多地机构选择直接下线面向公众的网站。荷兰国家网络安全中心官网预防性下线;荷兰、芬兰部分政府站点下线;法国数据保护机构CNIL关闭网站;日本BASE、pixiv、Niconico进入紧急维护。
法国内政部表示,地方政府网站被临时下线属于预防措施,医院也受到影响。荷兰电商行业协会Thuiswinkel.org临时下线了自家部分网站,并建议会员当天联系技术服务方,同时提醒「不只是WordPress/WooCommerce,任何系统的版本都要换」。日本首相高市早苗当晚也在X上发帖,呼吁排查系统并准备打补丁。
欧盟网络安全机构CERT-EU已于10月20日发布2026-018号安全公告,建议无法修补的机构「考虑将面向互联网的应用与公共网络隔离」。英国国家网络安全中心表示,「无法立即修复时,机构应考虑在完全缓解前将系统下线」。美国网络安全和基础设施安全局(CISA)在21日发布警报,建议升级PHP;对于无法升级的8.1及更早系统,应「下线」。澳大利亚信号局下属ACSC、日本IPA、法国CERT-FR也发布了类似建议。
美国国家安全局(NSA)在社交媒体上表示:「这些漏洞往往提供直达服务器文件系统或数据库的路径。」
超七成已披露版本服务器运行在停更分支
PHP官方这次破例为已停止支持的PHP 7.4、8.0、8.1发布了最小化源码补丁,各Linux发行版和长期支持厂商也提前拿到了补丁。对应修复版本为PHP 8.5.12、8.4.27、8.3.36、8.2.35。
但更老版本只能依赖发行版维护,或者直接下线。按照VirusTotal口径,在披露了版本号的服务器中,约75.8万台运行PHP 5.4至8.1,已不再获得官方补丁;约27.2万台运行在受支持分支。CyberScoop援引研究者称,超过130万台互联网暴露主机可能受影响;Shodan计数约190万台。在已披露版本的103万台暴露PHP服务器中,超七成,即73.6%,运行在PHP 5.4至8.1分支。
Cisco Talos基于开源情报估计,约50%的PHP系统不会获得补丁。PHP 8.2分支的安全支持将于2026年12月31日结束,这意味着下一次同级别漏洞爆发时,仍停留在8.2的企业只剩约两个月缓冲期。
官方称升级是唯一安全选择
市场研究机构W3Techs的口径显示,PHP驱动约70%的已知服务端语言网站;WordPress占全球约43%的站点。Wordfence提醒,每个WordPress站点都运行在PHP服务器上,但WordPress的自动更新不会修复PHP这一层。
PHP的session上传进度功能(session.upload_progress)已被确认是攻击入口之一。该功能十余年来默认开启,但实际很少有站点使用。缓解建议包括关闭该功能、下调post_max_size,不过PHP官方明确表示,「没有完整缓解措施,升级是唯一安全选择」。
PHP核心开发者Gina Peter Banyard说:「唯一的缓解办法就是打补丁或升级PHP。」对于「关掉session上传进度功能即可」的说法,PHP 8.6发布经理Joe Ferguson回应称:「ini设置救不了你。」
截至10月21日,公开信息中还没有任何已确认的受害者、泄露数据量或损失金额。已知情况主要是预防性下线,以及Cloudflare观察到攻击流量。
安全公司Sansec预计:「我们预计发布后15分钟内就会开始大规模攻击。」watchTowr威胁情报主管Jake Knott表示:「虽然至今没有人成功,但我们不认为这能持续多久。」Calif首席执行官Thai Duong则说:「推特上随便一个人都能拿补丁去跑AI,然后贴出攻击脚本。到时候会天下大乱。」
PHP Foundation安全工程师Volker Dusch将这次事件与2014年的Heartbleed相提并论,称这是PHP十余年来最严重的安全问题。对于提前发布的取舍,他表示,这是在「提醒防守方」与「不给攻击者太多开发时间」之间取得「良好平衡」。
独立安全顾问、伦敦国王学院访问高级研究员Lukasz Olejnik表示:「所有人都应该立即打补丁,攻击可能来得非常快、规模非常大。AI让利用这类漏洞变得迫在眉睫。真的,就是一两分钟的事。」荷兰伦理黑客Wouter van Dongen则说:「一个补丁堵住了漏洞,但不能撤销此前的入侵……很多系统会长期脆弱,因为不是所有人都会立即更新,而且旧版PHP不再有官方安全更新。」


