2026-10-22 · 1 分钟阅读

PHP2Shell:PHP 严重远程代码执行 – 立即修补

PHP2Shell:PHP 中的严重远程代码执行漏洞(CVE-2026-109618 和 CVE-2026-109619)

2026 年 10 月 20 日,PHP 安全社区公开披露了 PHP2Shell,这是一对高影响漏洞,编号为 CVE-2026-109618 和 CVE-2026-109619。两者均影响 PHP 5.4 至 8.5.11 版本,并允许未经身份验证的远程代码执行。PHP 维护者根据 CVSS v4.0 将该问题评为 10 分中的 9.2 分,属于严重级别。由于 PHP 支撑着全球约 70% 至 80% 的网站,此次披露对托管服务商、代理机构、电子商务运营者以及任何运行基于 PHP 网站的人都具有直接影响。

这两个 CVE 究竟做什么

CVE-2026-109618 是内存耗尽处理缺陷。当 PHP 遇到内存耗尽情况时,会使用 longjmp 中止当前请求。某些执行路径没有考虑这种突然退出,导致请求内存保持部分初始化状态。在清理过程中,引擎将这种无效内存视为有效数据。攻击者随后可以影响执行流并在服务器上运行任意代码。

CVE-2026-109619 是过时全局状态缺陷。PHP 维护着临时指向请求内存的全局变量。在某些情况下,该全局状态未能正确重置,或在释放后又被重新填充。它随后引用了不再属于活动请求的内存块。后续操作在正确初始化之前读取或分支于这种过时状态,再次为远程代码执行打开了大门。

简单来说,PHP 是构建和运行大多数动态网站的引擎。这些缺陷类似于引擎管理工作区并处置临时数据的方式存在缺陷。外部人员可以发送精心构造的请求,使引擎的内存处理不堪重负或发生混乱。当引擎出错时,攻击者可以将这种混乱转化为在 Web 服务器上执行的命令,而无需任何登录名或密码。

为什么风险紧迫

成功的攻击者会获得与 Web 服务器工作账户权限相同的代码执行能力。该访问权限可用于安装恶意载荷、将恶意脚本伪装成普通网站文件、减少 Web 活动、向不同用户显示不同流量、窥探结账时输入的银行卡数据,或要求访客验证命令以安装恶意软件。许多此类行为对普通用户甚至网站管理员都不可见。网站可能看起来健康,却在悄悄提供恶意内容或泄露数据。

在补丁完全可用之前,已在真实环境中检测到利用尝试。这使 PHP2Shell 成为需要立即修补的事件,而不是例行维护任务。每延迟一小时,自动化扫描器发现暴露安装的可能性就会增加。

修复版本及应采取的措施

PHP 维护者于 2026 年 10 月 21 日为受支持分支发布了紧急更新。修复版本为 PHP 8.2.35、8.3.36、8.4.27 和 8.5.12。还为 PHP 7.4、8.0 和 8.1 发布了源代码补丁,但这些分支已结束生命周期,未提供官方更新的二进制文件。仍运行这些版本的网站应立即迁移到受支持版本,或使用信誉良好的长期支持提供商。

PHP2Shell:修复版本

PHP 分支修复版本支持状态
8.28.2.35受支持
8.38.3.36受支持
8.48.4.27受支持
8.58.5.12受支持
7.4仅源代码补丁生命周期结束
8.0仅源代码补丁生命周期结束
8.1仅源代码补丁生命周期结束
← 向右滚动查看更多 →

管理员应更新 PHP,重启 PHP-FPM 或相关工作进程,并确认正在运行的版本与修复版本一致。如果您管理网站但不是服务器管理员,请立即联系您的托管服务商或管理员,要求进行 PHP2Shell 检查。快速检查应涵盖 PHP 版本、Web 服务器配置、最近的文件更改、异常计划任务和出站连接。不要等待可见症状:受感染的 PHP 网站可能在攻击者在其内部活动时仍完全正常运行。

对于技术团队,优先事项是为所有 PHP 运行时打补丁,包括容器、预发布环境和被遗忘的子域名。检查日志中是否有异常 POST 请求、内存相关错误和意外子进程。如果怀疑遭到入侵,请轮换密钥。对于非技术读者,信息很简单:请您的管理员验证 PHP 版本并应用紧急更新。PHP2Shell 是严重的、公开的且具有实际危险。

如果您运营在线商店、博客或客户门户,请将其视为安全事件,直到确认您的 PHP 版本已修补。要求提供版本和重启时间的书面确认。将备份保存在离线位置,监控异常管理员账户,并检查结账页面是否有更改。与银行卡数据被盗、网站被篡改或恶意软件分发活动的代价相比,快速更新的成本很小。

让我们合作吧

您需要更多信息、项目帮助或开发构想吗?

无论是简单的问题还是完整的项目,我都在这里。联系我,让我们将您的想法变为现实。

联系我 →

切换主题

选择一个专业主题进行探索: