10 月 21 日,NSA 的公告在档案里留下了两个样子。18:40Z 存档的那一版只有一段话,第一句是「为一次更新做好准备」;22:30Z 再看,还是这一段;到 10 月 22 日 01:13Z,同一个文章编号已经是一篇完整的新闻稿,语气变成「要求立即修补」,还多了一句范围判断。12
两版之间隔了六个半小时。页面上的 datePublished 都是 Oct. 21,没有 Updated 行,页面里唯一的 JSON-LD 只描述机构本身。它改过,但「改」这件事没有留在页面上。
一段话,和一篇新闻稿
第一版全文五句话:所有用 PHP 的组织要为一次更新做好准备;PHP 用得广;这些漏洞常常直通服务器的文件系统或数据库;如果没法立即更新,建议把系统下线直到完全缓解;NSA 稍后会给出更具体的指引。1
第二版把这些展开成三节,并补上了三样东西:一个集体的名字(PHP2Shell)、一句范围判断、一个明确的对象。范围判断是「These vulnerabilities are flaws in PHP itself, not in the hosted application or its configuration. Servers running affected PHP versions are exploitable.」对象是「These risks are serious enough to require immediate patching across United States Government departments and agencies.」2
它同时删掉了一句承诺。第一版结尾那句「NSA will follow up shortly with more specific guidance」在第二版里没有对应的句子。截至 10 月 22 日 04:16Z,NSA 的网络安全公告库最新一条仍是 10 月 16 日那份关于超级智能训练与评估的事件响应实践,没有 PHP 条目;站内检索也只回到这一个新闻稿,没有配套的技术公告或 PDF。23
改版没有写理由。能查到的只有结果:标题从「NSA Advisory: PHP Updates」换成现在这个,网址从旧 slug 换成新 slug,文章编号仍是 4630238。两次 Hacker News 提交分别指向这两个网址,间隔 8 小时 50 分;第一个提交的时间是 18:39:25Z,比第一份存档早一分十七秒。这是外部能看到的唯一指纹。4
被补上的那一句
第二版补上的范围判断,把「受影响」的标准从代码换成了版本。同一时间,CISA 的告警写的是另一句:「affect all PHP installations serving web requests」。两家用词不同,落点一样:只要有一个 PHP 进程在对外服务,它就在范围内。5
评分那套东西没有变。php.net 给 9.2,NIST 在 NVD 给 9.8,CISA 的 SSVC 分级到 10 月 22 日早上仍写着 exploitation: none。三份记录量的不是同一件事,但它们都不回答一个组织最实际的问题:我们这里有没有那台机器。6
版本藏在别人的产品里
最先承认这件事的不是网站,是卖工具的。Plesk 的公告写「all PHP versions shipped with Plesk are also affected」,还把 Plesk 自己的界面引擎 sw-engine 单列一类,括号里注明它是「PHP engine used by Plesk itself」;修法是升级到 Obsidian 18.0.81 Update 4 或 18.0.80 Update 11。7
F5 的做法更直白。BIG-IP 的管理界面写在受影响列表里,修复一栏全填「None」,缓解办法是往设备里写一份
/etc/php.ini.d 下的 drop-in,然后重启 httpd;公告自己提醒,这些改动「will NOT survive an upgrade of BIG-IP TMOS」。8 Palo Alto 的 PAN-OS 与 Panorama 同样全版本标记受影响,受影响面是设备自带的管理 Web 界面,修复 ETA 写「TBD」。9系统包这一层也不整齐。RHEL 9 的默认
php 包仍是 8.0,而 8.0 早就不在上游的支持表里;要拿到 8.1 或 8.2 得显式切 module stream。10 PHP 官方支持表里,8.2 的安全支持到 2026-12-31,8.3 到 2027 年,8.4 到 2028 年;8.1 及更早已经不在表上。11托管这一层动作最快。Kinsta 写「As PHP is managed at the platform level on Kinsta, fixes will be deployed automatically once validated」,并补一句「No action is required on your end」;Pantheon 说 8.2 到 8.5 已全部打完,更老的版本靠 LTS 厂商回移;Automattic 说 WordPress.com、VIP、WP Cloud、Pressable 与 Tumblr 的站点「already protected」。12
同一个 CVE,四种人的动作完全不同:托管客户什么都不用做,面板用户等面板发包,设备用户等固件或者写 drop-in,自己管系统包的人等发行版回移。Plesk 的文档把老旧 PHP 的三条路列得很清楚:让站主升级、把网站下线、继续托管并接受风险。13
同一天,没动的文本
CISA 的告警在两次归档之间逐行相同,169 行对 169 行,没有一行差异;正文仍写「While CISA has not observed exploitation of these vulnerabilities as of the time of publication」。5 CISA 的已知被利用漏洞目录(KEV)到 10 月 22 日 04:09Z 仍是 2026.10.21 版、1754 条,两枚 CVE 都不在里面,最近一次新增停在 10 月 20 日。14
AWS 站在另一边。22:36Z 的博文说,发布当天它识别到多份 PoC,最早约在 02:00Z;02:00Z 到 08:00Z 之间,蜜罐又从另外几处匿名基础设施上看到多起尝试,载荷与匿名方式各不相同;解禁之后,更多 PoC 在数小时内出现,并被几乎立刻用上。它的结论是一句现在时:「PHP2Shell is now being broadly exploited in the wild.」它同时留了边界:技术分析仍在进行,不清楚这些尝试在真实系统上会不会成功。15
这条时间线值得单独记一笔。02:00Z 比协调解禁的 14:00Z 早十二小时,也比 Chainguard 放出带修复镜像的 07:41Z 早五个多小时。这说明禁运不是在某一个时刻被某一个人打破的——在 07:41 之前,它已经在漏。1516
FBI 的警告只存在于转述里。AP 写「The FBI's cyber division warned the vulnerabilities could allow malicious actors to remotely execute code」,没有文件名、没有链接、没有署名官员;fbi.gov 的 Cyber Alerts 列表最新停在 10 月 13 日,站内没有这一条。17
下线不是修辞
10 月 21 日 10:30:01Z,法国数据保护机构 CNIL 发帖说,因一次维护操作,cnil.fr 与 linc.cnil.fr 目前不可用。帖子里没有提 PHP;把一个数据保护机构的下线与这次漏洞连起来的,是 The Record 的报道。1819 Sophos 则在自己的公告里写得更直接:它在 10 月 21 日把 MyUTM 门户下线,修好之后才恢复服务。20
Plesk 的文档把「下线」写成一条正常选项,而不是事故:老旧 PHP 的处理只有升级、下线、接受风险三种。13 WIRED 的报道里也有一句概括:「Some governments and other groups even proactively took key websites down in anticipation of the release.」21
该做的四件事
第一,把清点的单位从「项目」换成「安装」。项目的语言是「我们没有用 PHP」,安装的语言是「这台机器上跑的是什么版本」。容器镜像、控制面板、设备固件、别人替你装的 CMS,都属于后者;CISA 自己承认这件事不容易,「PHP is often a component of other software and prevalence may not be directly observable」。5
第二,EOL 分支先动。8.1 及更早没有上游补丁,只能靠发行版回移,而回移是否覆盖你的发行版要逐个查;8.2 的支持期只剩到 2026-12-31。11
第三,打不了就下线,并且提前写明谁有权做这个决定。下线不是运维动作,是业务决定:停一个官网和停一个收款系统,代价差几个数量级。这件事的难点不在技术,在于事前没有人被授权。
第四,引用一条会改的公告时,写清版本与取数时刻。页面不留痕;同一个网址,两个正文。存证不必复杂,一次快照加一个时刻就够——这次能证明「它改过」的,恰好就是别人留下的快照与一条论坛提交。
能确定与不能确定的
能确定的是:两版共用文章编号 4630238;第一版在 18:40:42Z 已存在、22:30:09Z 仍未变;第二版不晚于 10 月 22 日 01:13:46Z 上线;两版的 datePublished 都是 Oct. 21,页面没有 Updated 行;CISA 的告警两次归档逐行相同,KEV 到 10 月 22 日 04:09Z 未收录;AWS 在 22:36Z 说它正在被广泛利用,并把最早的 PoC 定在 02:00Z 左右;CNIL 的帖子发在 10:30:01Z,只说是维护。
不能确定的有几块。NSA 没有任何分钟级时间戳,源站又拦掉了响应头,只能给出「不晚于 18:39:25Z 已公开」的夹逼;PCMag 在 15:08:23Z 的文章里已经引到短版原句,说明它可能更早就上线了。22 改版的动因没有公开说明;那句「更具体的指引」会不会来、什么时候来,也没有迹象。
AWS 那条 10 月 17 日的蜜罐记录,仍然只有它一方的一手遥测,用的词是「尝试」,并写明不清楚会不会成功;02:00Z 那批 PoC 从哪来,同样没有解释。FBI 是否有自己的原文,检索不到;CNIL 的下线是否确为这次漏洞,它自己没说。路透的正文被反爬拦住,未核。
References
- 1NSA Advisory: PHP Updates(2026-10-21T18:40Z 归档)
web.archive.org
- 2
- 3
- 4Hacker News · NSA Advisory: PHP Updates
hn.algolia.com
- 5
- 6NVD API 2.0 · CVE-2026-109618
services.nvd.nist.gov
- 7Plesk · CVE-2026-109618 and CVE-2026-109619
support.plesk.com
- 8F5 K000163821
my.f5.com
- 9Palo Alto Networks · CVE-2026-109618
security.paloaltonetworks.com
- 10Red Hat · PHP module streams
docs.redhat.com
- 11PHP: Supported Versions
php.net
- 12
- 13Plesk · Securing outdated PHP versions
docs.plesk.com
- 14
- 15
- 16Today's PHP Security Release · The PHP Foundation
thephp.foundation
- 17
- 18CNIL · @CNIL
x.com
- 19
- 20Sophos · SA-20261021 PHP2Shell
sophos.com
- 21
- 22


Comments