2026年10月20日,PHP 两个严重远程代码执行漏洞的编号和发布时间在补丁正式公开前遭到泄露;随后,PHP 官方将安全更新提前至10月21日发布。这两个漏洞被安全社区统称为 PHP2Shell,编号为 CVE-2026-109618 和 CVE-2026-109619,CVSS v4.0 评分均为 9.2,属于“严重”级别。
之所以影响巨大,是因为漏洞并不只是某个 WordPress 插件、某个 PHP 框架或某个开源系统的问题,而是出现在 PHP 解释器核心层。这意味着,只要服务器仍在运行受影响的 PHP 版本,并且处理 Web 请求,就可能面临风险。
什么是 PHP2Shell?
PHP2Shell 这个名字非常直白:攻击者在满足特定条件时,可能通过构造恶意 Web 请求,在服务器上执行任意代码,进而获取类似 Shell 的控制权限。
这两个漏洞都与 PHP 核心的内存管理和错误处理机制有关:
- CVE-2026-109618:与内存耗尽后的异常中断有关。攻击者可能通过特制请求触发内存异常,使 PHP 在内部状态未完全初始化或已损坏的情况下继续执行后续流程,最终导致内存破坏。
- CVE-2026-109619:与跨请求残留的全局状态有关。前一个请求的致命错误可能导致状态未被完全重置,残留的指针或状态可能在下一个请求中被错误使用,形成释放后使用问题。
更危险的是,攻击者在特定情况下不需要登录后台,也不需要目标网站存在明显代码缺陷,就可能通过构造恶意 multipart/form-data 请求触发漏洞。
哪些版本受影响?
目前官方已发布修复版本:
- PHP 8.5.12
- PHP 8.4.27
- PHP 8.3.36
- PHP 8.2.35
仍在使用 PHP 8.2.35、8.3.36、8.4.27、8.5.12 以下版本的用户,都需要尽快核查并升级。
需要特别注意,PHP 8.1 及更早版本已经停止官方安全维护,不会获得正式补丁。如果仍在使用这些版本,建议尽快迁移到受支持的 PHP 分支。
受影响的环境包括 PHP-FPM、Apache mod_php、php-cgi、FrankenPHP、LiteSpeed 等常见部署方式。
为什么这次漏洞特别严重?
这次事件有几个值得重视的特点。
1. 漏洞位于 PHP 核心
它不是某个 CMS、框架或插件的漏洞,而是 PHP 运行时本身的问题。即使 WordPress、Laravel、phpMyAdmin 等应用本身代码规范,只要底层 PHP 版本未修复,仍可能受到影响。
2. 攻击面非常广
PHP 长期被用于大量网站和 Web 应用。根据 W3Techs 2026年10月的统计,在全球可识别后端语言的公开网站中,约 69.3% 使用 PHP。
3. 披露过程被打乱
漏洞细节在协调披露前被泄露,PoC 和技术讨论随后快速扩散。补丁发布前后,全球已经出现大量攻击尝试。
4. 已有在野利用迹象
多家安全机构和研究人员已观察到针对该漏洞的攻击尝试,部分蜜罐环境也捕获到成功执行代码的证据。
WordPress 用户应该怎么做?
如果你的网站使用 WordPress,首先要明确一点:只更新 WordPress 核心、主题或插件并不能修复 PHP 层面的漏洞。 必须确认服务器实际运行的 PHP 版本已经升级到安全版本。
建议按以下步骤检查:
- 确认当前 PHP 版本
通过主机管理面板、SSH 执行php -v,或查看 phpinfo 页面确认实际版本。 - 检查实际使用的 PHP 进程
有些服务器可能有多个 PHP 版本,命令行版本和 Web 服务使用的版本并不相同。务必确认 Web 请求实际调用的 PHP 版本。 - 升级到安全版本
优先升级到 PHP 8.5.12、8.4.27、8.3.36 或 8.2.35。如果使用容器,需要重新构建镜像并重启服务。 - 重启 PHP-FPM / Web 服务器
升级后务必重启 PHP-FPM、Apache、Nginx 或其他相关服务,避免旧进程继续运行。 - 检查异常日志
查看 Web 服务器日志、PHP 错误日志,关注异常的 500 错误、内存耗尽提示、异常 POST 请求或可疑文件变更。 - 轮换敏感凭据
如果怀疑服务器可能已被探测或入侵,应考虑轮换数据库密码、API 密钥、管理员密码和会话密钥。
临时缓解措施只能作为过渡
在无法立即升级的情况下,可以考虑一些临时措施,例如关闭 session.upload_progress.enabled、限制公网访问、部署 WAF 规则等。但 PHP 官方也明确指出,这些方法 不能完全消除风险,升级才是唯一可靠的安全选择。
写在最后
PHP2Shell 再次提醒我们:网站安全不只是应用层的事,底层运行环境同样关键。对于 WordPress、Laravel、phpMyAdmin、电商系统、企业内部系统等 PHP 应用,建议尽快完成版本排查和升级。
如果你不确定自己的服务器是否受影响,可以先从三个问题开始检查:
- 当前服务器正在运行哪个 PHP 版本?
- Web 服务实际使用的是否是同一个版本?
- 该版本是否已达到官方安全修复版本?
只要这三项确认清楚,就能快速判断是否需要立即处理。
近期评论