2024 年就见过的漏洞,2026 年才修上:PHP2Shell 第六天,“1 名全职员工”撑起的这门语言该怎么算账

源自61位全网作者

10-27 17:32

截至 10 月 27 日,PHP2Shell 事件已经走了整整六天。

今天的更新都是"升级"信号:国家互联网应急中心(CNNIC)上午发布了漏洞修复风险提示,建议自查并通过官方渠道升级;奇安信确认该漏洞已存在"在野利用"——全球多个国家的近千个源 IP 发起了数万次攻击尝试;Cloudflare CEO 马修·普林斯给出的数字仍在发酵:漏洞细节公开后 45 分钟内攻击尝试冲到数万次,两小时内数十万次,累计达到数百万次。 各国下线避险的网站则陆续恢复。微博金融时报知乎

但对 PHP 开发者来说,这周刷屏的新闻里最扎心的一句其实来自 10 月 25 日:支撑全球约七成网站的这门语言,PHP 基金会负责人坦言资金不足——只有 1 名全职员工。金融时报IT之家

前几天的讨论都在解决"升不升、怎么升"。今天这篇只补一个新问题:这次事故暴露的维修供给账本,你的项目要怎么算。

先看这张账本

维度

数据

出处口径

暴露面

在能识别服务端语言的网站里,PHP 占 69.3%

W3Techs 统计

版本结构

社区统计口径下,近半数 PHP 网站跑在官方已停止维护的版本上

业界流传数据

官方修复供给

10 月 21 日仅发布 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35 四个修复版本

PHP 官方公告

第三方修复供给

宝塔 10 月 24 日宣布已覆盖 PHP 5.4~8.x 共 14 个分支修复包

宝塔公告

攻击烈度

细节公开后 45 分钟数万、两小时数十万、累计数百万次攻击尝试

Cloudflare

在野利用

全球近千个源 IP、数万次攻击尝试,确认为现实利用

奇安信/中国之声

维护人力

PHP 基金会全职员工:1 名

基金会负责人 10.25 表态

一句话总结:几亿级网站的暴露面、数百万次攻击尝试,对上 1 名全职维护者。这次事故考验的从来不是你的 PHP 写得好不好,而是你在"免费"上到底欠了多少账。

2024 年就见过的漏洞,2026 年才修上:PHP2Shell 第六天,“1 名全职员工”撑起的这门语言该怎么算账

为什么"2024 年就知道",“2026 年才修”

把六个信源的时间线拼起来,才能看懂延迟两年不是意外:

  • 约 14 年前:两个漏洞的根源(请求内存释放后的野指针、OOM 跳转打断初始化清理)已经躺在 PHP 解释器的底层代码里。金融时报

  • 2024 年:PHP 首次外部安全审计时,工程师就察觉了相关问题。但技术复杂、修复方案存在争议、维护人手不足——问题被搁置了两年。

  • 2026 年 8 月:安全公司 Calif 在 OpenAI"修补地球"计划下用 GPT-5.6 Sol 审计 PHP,仅 2 天找到第一个能触发内存耗尽的入口;谷歌旗下 Wiz 独立发现并报告了另一个。此后近两个月,官方、安全厂商、云服务商和各国机构保密协同修复。哔哩哔哩

  • 10 月 20 日深夜:用户 petecooper 在 Hacker News 发帖泄露细节(附漏洞编号,自称"信我就行"),帖子很快被删,但截图已经扩散。安全公司 watchTowr 几小时后确认——原话是"我们本来都该等到周四的"。PHP 官方被迫把原定 10 月 22 日的安全更新,提前到 21 日晚(北京时间 22 点)。知乎

  • 10 月 21 日白天:多米诺继续倒。Calif 误将攻击演示视频传到网上,秒删仍被保存疯传;下午 3 点 41 分,一家容器镜像公司比约定时间提前 6 个多小时放出打好补丁的镜像,PHP 基金会公开开骂"无视多方数周的协调"。旧版与新版代码丢给 AI 暴力对比,漏洞位置一目了然——补丁发布前的最后 16 个小时,成了攻击者的抢跑窗口。

  • 10 月 21 日 22 点(北京时间):四个修复版本上线;OpenAI 认领 GPT 参与发现。知乎

  • 10 月 22—25 日:余波扩散。日本首相高市早苗深夜在 X 建议网站运营者排查 PHP、预防性下线,连她自己的官网也关了;人力资源软件商 BambooHR 直接停服,niconico、pixiv、《赛马娘》《最终幻想14》等日系服务紧急维护;荷兰鹿特丹港、数字身份系统、丹麦学校通信平台、比利时外交部、德国联邦 IT 服务商、法国内政部站点相继下线。

  • 10 月 25 日:奇安信确认在野利用;petecooper 公开道歉称"不知有保密协议";基金会负责人"1 名全职员工"的表态见报。快科技

  • 10 月 27 日:CNNIC 发布修复风险提示。

这条时间线里最值钱的信息不是漏洞本身,而是:从"知道有问题"到"全球修得上",中间隔着的不是技术,是人手和协调。

2024 年就见过的漏洞,2026 年才修上:PHP2Shell 第六天,“1 名全职员工”撑起的这门语言该怎么算账

两种错误读法

错误读法一:“PHP 药丸,趁早转 Go/Java。”

同一天的事实是:Node.js 也在 10 月 21 日发布了安全更新,一次修了 10 项漏洞(4 项高危),其中 Brotli 解码漏洞(CVE-2026-111497)同样可导致远程代码执行,而 EOL 的 Node 20/18 一样拿不到修复;Oracle Java SE 也被曝出 9.1 分高危 CVE-2026-91403。 EOL 版本没人管、协调披露被抢跑、维护人手不足——这是整个开源世界的通病,Log4j 那次大家应该还记得。而 PHP 本身远没死:8.6 已定档 11 月 19 日,发版节奏完全正常。换语言不解决这次的问题,问题出在版本结构,不在语言。知乎知乎

错误读法二:“我代码干净、不用插件,就安全。”

这两个漏洞触发在你的业务代码运行之前:multipart 上传进度回调、OOM 的 longjmp 路径,都会在请求初始化阶段出问题,官方认定 mod_php 部署风险最高,已有攻击演示能在网站业务代码运行之前触发漏洞。 一台服务器上只放一个 phpinfo() 页面,照样可能被人拿到 shell。 "我写得好"在这件事上不构成防护,因为出问题的是解释器,不是你。知乎知乎

你该做的事:先把"维护供给"算进成本

如果你是选型者或老系统负责人,这次之后评估任何依赖(不只 PHP),建议固定问五个问题:

  1. 这个项目有几名全职维护者?(PHP:1 名。对照有商业公司供养的运行时,差距一目了然。)

  2. 官方安全修复同时覆盖几个分支?(PHP 这次只有 4 个,而存量部署一半在覆盖范围外。)

  3. 从版本 EOL 到你的下线计划,中间差几年?(跑 EOL 版本不是风险,是迟早要还的债。)

  4. 紧急事件的响应记录怎么样?(这次是 2 个月的保密修复被一次泄露打穿——预案比补丁先到。)

  5. 出事了谁替你修?(发行版回移、宝塔 14 分支这类第三方供给确实存在,但它们不免费:要人跟、要钱买、要测试环境验。)

分人群落地:

  • PHP 8.2+:升到对应修复版本。老提醒一句:分别核对 CLI 与 FPM/SAPI,查发行版软件包的 changelog 而不是版本号。

  • 8.1 及更低(7.x/5.x):官方修复轮不到你。现实顺序是:先看发行版有没有回移修复(以包版本字符串判断);再看宝塔等第三方修复包,宝塔已针对 PHP 5、PHP 7、PHP 8 系列共计 14 个版本分支提供本次漏洞的相关修复包。 都不行就收缩暴露面——mod_php 优先迁 FPM、限制 multipart 入口、上 WAF 虚拟补丁,同时把版本债列进下个季度的预算。知乎

  • 老项目/外包存量站:如果连 PHP 版本分布都盘不出来,这次的第一课就是盘点:有几台机器、什么 SAPI、几个 FPM pool、哪些在 EOL。

  • 企业运维:订阅 CNNIC 和厂商公告;CERT-EU 的处置标准值得抄——修不了的,先把对外服务与公网隔离。 预防性下线不丢人,荷兰、日本、各大游戏厂商都是先下完再排查。知乎

2024 年就见过的漏洞,2026 年才修上:PHP2Shell 第六天,“1 名全职员工”撑起的这门语言该怎么算账

接下来盯什么

  • 两个 CVE 是否进入 CISA 已知被利用漏洞目录(截至发稿未列入,也无确证的大规模入侵案例公布;但在野利用已确认——"还没出事"和"还安全"是两件事)。知乎

  • PHP 基金会的资金和人员是否扩容,"1 名全职"是不是孤例。

  • 11 月 19 日 PHP 8.6 发版——事件后的第一个完整发版周期,社区还修不修得动。

  • 新华社援引欧洲专家的判断:影响将在未来数周至数月持续显现,彻底清除遗患可能需要数月甚至数年。别把这事当成"打完补丁就散场"。

2024 年就见过的漏洞,2026 年才修上:PHP2Shell 第六天,“1 名全职员工”撑起的这门语言该怎么算账

“PHP 是世界上最好的语言”,这个梗玩了二十多年。这六天给它添了一个严肃注脚:真正撑起"最好语言"的,是 1 名全职员工和大量志愿维护者。这次事故没有问你要不要继续用 PHP,它问的是——你有没有把他们的人力,算进过你的项目成本。

内容由AI生成
0
扫一下,分享更方便,购买更轻松
0评论

当前文章无评论,是时候发表评论了
提示信息

取消
确认
评论举报

最新文章 热门文章