PHP2Shell 防御指南:PHP 双 RCE 漏洞的影响与自查清单

PHP2Shell 是什么

2026 年 10 月,PHP 官方发布安全更新,修复了 PHP 核心中的两个远程代码执行漏洞,编号为 CVE-2026-109618 与 CVE-2026-109619,合称 PHP2Shell。两个漏洞的 CVSS v4.0 评分均为 9.2,属于高危。通俗地说,在满足触发条件的情况下,未经授权的远程攻击者有可能在服务器上执行任意代码,这是 Web 服务最严重的漏洞类型之一。

本文只讲防御:受影响版本、官方修复版本和自查升级步骤,不涉及任何利用细节。

受影响版本与官方修复版本

官方修复版本为:PHP 8.5.12、8.4.27、8.3.36、8.2.35。如果你运行的版本低于对应分支的修复版本,就在受影响范围内。判断方法很简单,在服务器上执行 php -v,把输出的版本号与上表对照即可。

另外需要注意一个细节:PHP 随后还发布了 Windows 平台的重打包版本(版本号后带 -1 后缀),原因是附带的 Brotli 与 cURL 组件需要更新。重打包不改变 php -v 的输出,Windows 用户要以安装包的实际版本为准,不要只看命令行输出就以为已经修好。

还有一个相关的 session 漏洞

同一时期还披露了 CVE-2026-115560,这是一个与 session 上传进度功能有关的远程代码执行问题,触发条件比较窄,10 月 21 日的补丁并不覆盖它。PHP 官方的评估是它不太可能被实际利用。作为临时缓解措施,可以把 session.upload_progress.enabled 设为 0,除非你的业务确实依赖上传进度功能。

在野动态:从“已披露”到“已确认利用”

漏洞刚披露时,是否已被实际利用尚无定论;随后云厂商与安全厂商陆续报告观测到在野利用尝试,2026 年 10 月 26 日,美国 CISA 把这两个编号正式收进 KEV(已知被利用漏洞目录)。这意味着防御窗口已经从“尽早升级”变成了“尽快升级”。需要注意,KEV 里的整改期限只针对美国联邦机构,不是对所有用户的统一期限,但它是一个明确的信号:不要再拖。

同时也要客观看待风险:有研究机构指出,公开的利用方式打不动默认配置。也就是说,是否可被利用还取决于具体配置,但这绝不是不升级的理由——配置千差万别,唯一稳妥的做法是升到修复版本。

自查与升级清单

  • 查版本:所有 PHP 服务执行 php -v,逐一对照修复版本表。
  • 升版本:优先升级到对应分支的修复版本;暂时升不了的,用 WAF 规则或虚拟补丁做临时防护,并排期升级。
  • 查暴露面:确认哪些 PHP 服务直接对公网开放,优先处理暴露面大的。
  • 查日志:回顾漏洞披露前后的访问日志,留意异常请求模式,必要时请专业人员复核。
  • 关掉不需要的功能:确认是否用到了 session 上传进度,不用就按上文关掉。
  • 托管用户注意:如果你用的是托管建站或云平台,一般由平台统一修复,到平台公告里确认修复状态即可,不必自己改服务器配置。

总结一句话:PHP2Shell 的修复路径非常清晰——对照版本表升级,升不了就先挡后升,并把 session 上传进度这个开关检查一遍。