PHP2Shell 漏洞预警:CVE-2026-109618/109619 无认证 RCE 的自查与处置
一、事件概要
2026 年 10 月 20 日,PHP 安全团队发布预告:将于 10 月 21 日 14:00 UTC 发布安全版本,修复两个严重漏洞。两个漏洞均已分配 CVE:CVE-2026-109618 与 CVE-2026-109619。
两者 CVSS v4.0 评分均为 9.2,攻击者在无需认证的情况下即可实现远程代码执行(RCE)。社区已把这一对漏洞统称为 PHP2Shell。
值得注意的是,原计划保密到补丁发布的技术细节提前泄露,实际可利用窗口比预期更短。目前公开渠道对 PoC 的说法不一:有研究团队声称已复现但未公开技术细节,也有厂商明确表示未掌握公开 exploit 代码。建议按「随时可能出现公开利用」来安排处置优先级。
二、影响范围与修复版本
| 分支 | 修复版本 |
|---|---|
| PHP 8.5.x | 8.5.12 |
| PHP 8.4.x | 8.4.27 |
| PHP 8.3.x | 8.3.36 |
| PHP 8.2.x | 8.2.35 |
| PHP 5.x – 8.1.x | 已 EOL,官方不再提供修复 |
PHP 8.1 及更早分支已进入生命周期终点,不会获得安全更新。如果生产环境仍在运行这些版本,需要考虑迁移到受支持的版本分支。
三、处置:只能升级,改配置无效
这一点容易被误传。有人在社区建议通过关闭 session.upload_progress 之类的配置项来规避,PHP 核心开发者已明确回应:唯一的缓解措施是打补丁或升级 PHP。这与漏洞触发路径有关,不落在某一项可配置开关上。
因此处置顺序应当是:
- 盘点:找出所有运行 PHP 的资产并记录版本号。除了常规 Web 服务器,还要覆盖 NAS、路由器管理面板、自建监控与网盘等容易被漏掉的位置。
- 升级:按上表升到对应分支的修复版本,优先处理暴露在公网的服务。
- 复核:升级后确认 php -v 输出符合预期,并检查是否存在多个 PHP 版本共存、导致升级后仍在跑旧版本的情况。
- 迁移计划:8.1 及以下先做临时加固加迁移排期,不要指望后续补丁。
一条实用的自查命令:
php -v
如果这条命令报「未找到命令」,说明这台机器本身没有 PHP 环境,不在本次影响面内。但这不等于可以跳过盘点——容器镜像、CI 构建机、便携版 PHP 运行时都不会进入系统 PATH。
四、一点判断
这类「语言核心层未认证 RCE」的漏洞,真正危险的不是漏洞本身,而是资产清单不全。多数事故不是因为没有补丁,而是因为有一台没人记得的机器还跑着旧版本。
所以在打补丁之外,更建议顺手做一件事:把「哪些主机、哪些容器里跑着哪个版本的 PHP」变成可以随时查清的状态。这次做完了,下一次就不用重新慌一遍。
本文为自检与处置思路的记录,具体版本号请以 PHP 官方公告为准。
- 点赞
- 收藏
- 关注作者
评论(0)