北京时间10月21日晚上10点,PHP基金会一口气放出8.5.12、8.4.27、8.3.36、8.2.35四个安全版本,比原计划提前了一天。 它们修补的是PHP核心引擎里潜伏十几年的两个漏洞:CVE-2026-109618与CVE-2026-109619,社区称“PHP2Shell”,官方CVSS v4.0评分都是9.2,安全公司watchTowr给到了满分。 两个洞都属于未认证远程代码执行:攻击者不需要任何登录凭证,向跑着PHP的Web服务发一个特制HTTP请求,就可能让恶意代码在业务逻辑开始执行之前,以Web进程的权限在服务器上跑起来。知乎·dos2unix机器之心央视新闻
预警之后,关停的连锁反应比很多人想象得快。日本多家游戏和平台进入紧急维护,pixiv、niconico、BOOTH的官网都在名单里。 欧洲这边选择更直接:荷兰议会、荷兰国家安全中心、芬兰中央政府的网站,连同Pixiv一起临时下线。游研社微博
10月22日,工信部网络安全威胁和漏洞信息共享平台(NVDB)发布风险提示,确认PHP存在两个远程代码执行超危漏洞,危害严重。 PHP官方的口径没有留下任何模糊空间:临时缓解措施都不完整,升级到修复版本是唯一安全的选择。财联社机器之心
藏了十几年的洞,是怎么被AI拼成武器的
两个漏洞都是内存问题。109618出在内存上限的边界处理上:请求恰好撞进PHP的memory_limit限制时,一部分只初始化了一半的内部数据被遗留下来,随后被当作有效数据继续处理,造成内存损坏。机器之心
109619则出在错误处理之后:fatal error发生在错误的时间点时,内部状态仍然指向上一个请求的内存区域,同一个worker的下一个请求会复用这块已释放的内存。 攻击者先发一个请求布置内存、再发第二个请求触发利用,两步就串成了完整的攻击链。机器之心
先要纠正一个常见误读:洞不是这次才出现,更不是AI写进去的。早在2024年PHP多年来的首次外部安全审计期间,核心开发者就注意到内存耗尽后的异常收尾,理论上觉得能被利用,但找不到具体的攻击路径;修复方案在共识决策里反复停滞,基金会后来在复盘里承认,这是决策流程和人手不足造成的“结构性失败”。数字生命卡兹克
AI补上的正是“拼攻击链”这一步。7月30日开始审计PHP后,安全公司Calif只用了两天就找到第一个能触发内存耗尽的入口;8月11日上报PHP当天,OpenAI自己的研究人员也独立报上了同一个问题。 几周内,Wiz又补充了更多攻击路径。也就是说,人类审计不是没看过这些角落,而是没有资源把零散的异常拼成可用的武器。数字生命卡兹克
“全球70%网站受影响”,两个口径别混
刷屏标题里最吓人的数字是“全球70%网站受影响”。准确的说法是:七成是PHP在全球网站服务端技术栈中的使用面,不等于七成会被黑。 只要跑的是受支持版本并且及时升级,或者前面挡着CDN和WAF,风险就是可控的。资产统计本身也有口径坑:暴露面数据统计的是主机而非网站,约74万台PHP主机不声明版本号,真实未修补数量只多不少。 反过来,不少看起来“没升级”的机器其实已经受保护——Debian、Ubuntu、RHEL这类发行版会向旧分支回移植补丁。真正危险的是自建环境里钉死不动的老版本:受影响的PHP版本范围从5.4一直延伸到8.5,覆盖了过去十多年间发布的所有主流版本。 8.1及更早分支本轮官方不再发版,只能迁移。产品小龙哥不卷技术的程序员机器之心
48小时:保密期没撑住,攻防时间差被压没了
比漏洞本身更让安全圈紧张的,是这次协调披露的失控。10月20日晚,Hacker News冒出一个声称“两个CVSS 10.0的PHP远程代码执行漏洞即将公开”的帖子,发帖人自己写着除了“信源:信我就行”之外没有任何证据,却附上了真实的漏洞编号,随后被watchTowr确认属实。 雪上加霜的是,Calif团队误发了一段概念验证(PoC)攻击视频,开发平台Chainguard又提前发布了包含补丁的二进制版本,攻击者得以通过对比代码差异反推出漏洞细节。 原定22日解除的信息封锁作废,PHP官方被迫把补丁提前了一整天。数字生命卡兹克机器之心
流量端的反应印证了最坏的预期:安全公司Sansec预测大规模攻击将在补丁发布15分钟内开始,Cloudflare报告在正式披露之前就已观测到早期利用迹象。 Cloudflare的WAF规则赶在公开披露前9小时上线,Imperva、Akamai、Fastly同步跟进,算是在补丁和用户之间垫了一层缓冲。 不过截至补丁发布,还没有这两个洞被大规模利用的公开证据——威胁是“兵临城下”,不是“已经沦陷”。 以前“漏洞公开→攻击泛滥”之间以月计的缓冲期,这次压缩到了小时。机器之心产品小龙哥知乎·dos2unix
程序员今晚的自查清单
按优先级排,最容易踩的坑都藏在顺序里。
版本要分两处查。命令行的php -v和网站真正跑的PHP-FPM、Apache可能不是同一个版本,主机面板里的设置也要逐个确认。 共享主机用户别自己猜,直接问服务商什么时候升。知乎·dos2unix
对照升级映射:8.5升8.5.12,8.4升8.4.27,8.3升8.3.36,8.2升8.2.35;8.2以下分支没有新版本,能做的只有迁移到受支持分支,或走发行版的回移植补丁。知乎·dos2unix
升级后重启所有worker。打补丁不重启等于没打:Apache、PHP-FPM、LiteSpeed的worker都要重启一遍,共享内存里的脏状态才会清掉。产品小龙哥
容器和CI镜像必须重建。很多团队本机早就升了,生产镜像的tag还钉在半年前的版本,pull了新镜像不重建容器等于原地踏步。知乎·dos2unix
实在来不及升级的,临时缓解只是缩小攻击面,不是修复,而且改完配置同样必须重启worker。 OpenAI也发布了PHP版本检查工具,做成Codex技能,能识别可能受影响的版本并给出升级指引,适合批量盘资产。产品小龙哥知乎·dos2unix
发现端被AI放大之后
PHP不是孤例。10月21日前后,PHP、Node.js、GitLab接连修补能远程执行代码的漏洞,有网友把这几天称为“黑色十月”。 防守端也在把AI工业化:OpenAI的“Patch the Planet”计划首批就涵盖了cURL、NATS、Go、Python、Sigstore这些基础设施项目。赛博帕鲁机器之心
OpenAI给这套打法起的名字是“防御者窗口”——让前沿AI抢在攻击者之前发现漏洞,为维护者和安全供应商争取部署修复的时间。 但窗口能不能变成现实,卡在了另一组数字上。Anthropic称其模型从去年11月到今年10月初,在开源项目里一共找出了29439条候选漏洞线索——注意口径是“候选”,还需要逐条验证。 Cloudflare公开自家流水线的账更有说服力:AI在他们128个仓库里报了20,799条安全报警,层层过滤之后,能交给工程师去修的只剩7,245条。 AI首先放大的是“报出来的问题”,而不是“修完的问题”;真正决定结局的,仍是打补丁的人有多快。对程序员来说,这轮变化的落点很朴素:互联网的安全水位不再取决于漏洞藏了多少年,而取决于你的补丁多久能部署上去。那些“只要不崩就绝不动”的祖传PHP系统,倒计时是真的开始了。机器之心数字生命卡兹克叁虫

登录