补丁比攻击晚到四天:福建企业应对 PHP 两个 9.2 分漏洞的排查清单
一、先说结论
这次不是"又一条安全新闻",是今天就得排进运维工单的事。
据 InfoQ 报道(媒体口径),PHP 于 10 月 21 日发布紧急安全更新,修复两个可导致未经身份验证远程代码执行的高危漏洞:CVE-2026-109618、CVE-2026-109619,CVSS v4.0 评分均为 9.2,非正式名 php2shell。官方安全公告措辞很直接:不存在完整的缓解措施,更新是唯一安全的选择(官方披露)。
更要注意时间差:亚马逊威胁情报称在 MadPot 遥测里发现可追溯至 10 月 17 日的利用尝试,即补丁发布前约四天就有人动手,建议客户"至少从 10 月 17 日开始"回查(媒体口径);Cloudflare 于 10 月 21 日 UTC 03:02 部署 WAF 规则,比补丁早约 9 小时。等公告、等镜像、等包的串行节奏,这次慢了半拍。
福建大量中小企业官网、外贸询盘站、商城、会员系统、OA 与项目管理工具,底层都是 PHP。本文不谈价格、不谈采购,只给一套能照做的排查动作,以及三个最容易白忙一场的坑。
二、这次到底变了什么
别被 9.2 分吓到乱停机,也别被"默认配置打不通"安慰到不动手。
| 项目 | 真实情况 | 口径 |
|---|---|---|
| 漏洞 | CVE-2026-109618 / 109619,非正式名 php2shell,可致未授权远程代码执行 | 官方披露 |
| 评分 | CVSS v4.0 均 9.2,同时标注 AC:H、AT:P(攻击复杂度高、有额外攻击要求) | 官方披露 |
| 成因 | 请求生命周期中的内存安全缺陷:内存不足处理、状态超出内存时限 | 媒体口径 |
| 官方修复版本 | 8.5.12、8.4.27、8.3.36、8.2.35 | 官方披露 |
| 受影响面 | Sansec 称自 PHP 5.4 以来未打补丁版本均存在;8.1 及更早已停止支持 | 媒体口径 |
| 各 SAPI | mod_php 两漏洞均经 HTTP 攻击验证;FPM 仅会话漏洞已验证、内存漏洞未证明完整利用;FrankenPHP 仅源码分析"可能存在" | 官方安全公告 |
| 缓解措施 | 官方:无完整缓解措施,更新是唯一安全选择 | 官方披露 |
| 未完成项 | CVE-2026-115560 仍未修复,建议先设 session.upload_progress.enabled=0 | 官方披露 |
| 版本寿命 | PHP 8.2 支持 2026-12-31 终止 | 官方披露 |
两条口径修正要记住:Sansec 后来下调"大规模利用"预期,称已公开利用代码对采用默认配置的 PHP 安装无效;GitHub 多数高赞 PoC 在原生 PHP 上跑不通,且存在恶意 PoC 仓库,JFrog 记录到会改桌面壁纸的恶作剧 PoC(媒体口径)。所以验证方式是核版本 + 对照公告,不是自己跑 PoC。
协调披露这次也失控:PHP 基金会称 CVE 编号提前两天流传、概念验证视频被误发、Chainguard 提前发布含修复的镜像;荷兰国家网络安全中心与众议院一度整站下线,但 Sansec 明确告知商家没必要(媒体口径)。
三、福建企业真正能用在哪
按"HTTP 请求会不会进 PHP 引擎"这条线扫,通常落在四类:
- 对外官网与外贸询盘站。建站程序、产品目录、留言/询盘表单多为 PHP,暴露最直接、优先级最高;有没有上传入口比页面好不好看重要。
- 本地商城、会员与订单系统,含小程序/公众号接口后端。涉及订单、客户资料与登录态,也是等保测评与客户审计会问到的位置。
- 内部协同与旁挂组件:OA、项目管理、网盘、论坛、客服工单,以及 OPNsense、OpenMediaVault、Nextcloud、Coolify 等常被社区点出背后跑 PHP(媒体口径)。被认为"只在内网"的,一旦有反向代理或 VPN 入口就得算进暴露面。
- 托管商、系统集成商手上的一批客户站点,以及容器/云主机镜像。前者该借这次把资产台账补齐、批量升级并留回执;后者要重建镜像,不是改个配置就完事。
四、可照做的四步
一、清点:先回答"有没有在跑 PHP、跑在哪"。php -v 只能初判,容器里尤其看不清;配合镜像清单、包管理器、进程服务(ps、systemctl)、Web 配置确认是 mod_php、FPM 还是 FrankenPHP,逐个标注是否对外、业务归属、责任人。输出是一张表,不是一句"应该没有吧"。
二、核版本与暴露面:发行版会做回溯移植,Ubuntu 24.04 修复包是 8.3.6-0ubuntu0.24.04.13,但 php -v 仍显示 8.3.6(媒体口径,Ubuntu 安全公告亦证实)。要走发行版安全追踪器核完整包版本,对照上述修复版本判断是否到位,并把 session.upload_progress.enabled=0 的临时项列进清单。
三、升级并重启所有工作进程:从发行版或镜像官方源升到含修复版本;升完必须重启 FPM/Apache 工作进程,否则旧引擎还留在内存里(两份公告均明确建议,官方披露)。CLI 不是 Web 服务器,别拿命令行新版本代替 Web 侧确认;容器走重建镜像。重启放业务低峰或滚动,留窗口公告。
四、回看与留痕:按建议"至少从 10 月 17 日开始"回看 Web 访问日志、WAF/主机告警(媒体口径),把升级前后完整包版本、重启时间、核对截图、责任人归档进运维/等保台账,并设复检提醒——8.2 支持 2026-12-31 终止,这次打完补丁不是长期方案。
五、三个坑
- 只看
php -v就宣布"打完了"。回溯移植后版本字符串不变,必须用发行版安全追踪器核完整包版本,否则台账是假的。 - 升完包不重启工作进程。FPM/Apache 仍跑旧引擎,等于没修。
- 拿 GitHub 高赞 PoC 去"验证漏洞"。多数在原生 PHP 跑不通,还可能踩到恶意仓库;验证应靠核版本 + 对照官方公告,别在生产环境跑来路不明的脚本。
六、什么时候上、什么时候别上
该尽快上的:对外可访问的 PHP 官网、商城、会员与接口;跑 mod_php 且用默认输入/内存配置的;8.2/8.3/8.4/8.5 未升到修复版本的;有等保测评、客户审计要求的。别排到下周。补丁到达前可用 WAF 规则、限流、收窄上传入口争取时间,但不能替代升级。
可以先按排期走的:纯内网、确认无 HTTP 请求进入 PHP 引擎的系统;已核完整包版本、落在修复版本内且工作进程已重启的实例。不必半夜停机,补台账与回看日志即可。
明确别做的:别照搬"整站下线"(Sansec 已说商家没必要);别在业务高峰一次性重启全部工作进程而不留窗口;别用来路不明的第三方热补丁替代官方发行版包。另外 PHP 8.1 及更早已停止支持,若还有老站点,这次补丁能否覆盖要单独确认,别默认"打过就安全"。
这次补丁比可观测到的利用尝试晚了约四天,说明"等公告、等镜像、等包"的串行节奏不够用了。该固化的不是某一个补丁,而是"资产清单 + 版本核对 + 重启确认 + 日志回看"这套固定工单。
补丁不是新闻,把版本号和重启记录留进台账,才是这次真正该带走的动作。
