此语言为机器翻译,尚未经过人工审核。

科技 · 文章

PHP2Shell:迫使多国政府网站下线的两个PHP严重漏洞

发布:

要点

PHP2Shell是两个未经身份验证即可远程执行代码的PHP编程语言严重漏洞的别称——CVE-2026-109618和CVE-2026-109619——于2026年10月20日至21日披露。由于PHP支撑着全球相当大比例的网站,这些漏洞导致多国政府出于预防考虑将公共网站下线。官方修复方法是升级PHP;服务器端存在临时缓解措施,但普通读者除了留意数据泄露通知并使用强且唯一的密码之外,几乎无能为力。

此版本是原文(English)的机器翻译。 阅读原文

PHP2Shell是PHP编程语言本身存在的两个漏洞的别称,而不是针对某个特定网站或应用。它们被编号为CVE-2026-109618和CVE-2026-109619,根据PHP项目官方2026年存档页面,PHP自身的安全团队在CVSS v4.0评分体系中将两者均评为9.2分(满分10分),属于“严重”级别。

这两个漏洞实际造成了什么问题

根据PHP项目自己发布的安全通告,CVE-2026-109618在PHP处理网络请求时发生内存不足时被触发。内存不足错误可能在内部请求数据完全建立之前就中断PHP,随后的清理过程可能将这些不完整的数据当作有效数据处理,从而可能导致内存损坏和远程代码执行。

PHP将CVE-2026-109619描述为“陈旧全局状态”漏洞:与某个访问者请求相关的数据可能在本应被清除之后仍残留在服务器内存中,而由同一工作进程处理的下一个访问者的请求可能最终对这些残留数据进行操作。运营全球监控系统网络的安全公司watchTowr表示,这两个漏洞都允许攻击者在无需登录的情况下执行代码,甚至在网站自身代码开始运行之前就能实现。

荷兰安全公司Sansec补充了进一步的技术细节,称其中一条利用路径通过PHP会话的“上传进度”功能实现,可能暴露密码、API密钥和加密密钥等数据,这些数据恰好残留在服务器内存中,属于其他不相关请求留下的信息。

为何如此多网站受到波及

这些漏洞位于PHP引擎内部,因此任何使用PHP构建的网站或应用都可能受到影响,无论其上运行的是哪种内容管理系统。据Sansec称,这包括WordPress、Drupal、Joomla、Magento和Nextcloud等广泛使用的平台。PHP仍是网络上使用最广泛的服务器端编程语言之一,这也是这些漏洞被视为造成大范围、大规模风险的原因之一。

Wiz的安全研究人员发现了这些漏洞,Help Net Security报道称,研究人员表示前沿人工智能工具的进步大大降低了将一个长期已知、难以利用的内存处理问题转化为可用攻击手段的技术门槛。

为何各国政府将网站下线

在PHP官方补丁准备就绪之前,这些漏洞的技术细节就已泄露,缩短了防御方通常在补丁公开前所能获得的准备时间。安全博客Safeguard报道称,2026年10月21日,荷兰出于预防考虑关闭了包括其国家网络安全中心自身网站、Overheid.nl、国会下议院网站以及多个医院和政党网站的服务。芬兰国有IT服务提供商Valtori作为预防措施将政府网络服务下线,丹麦市政IT公司Kombit关闭了包括一个全国性学校通讯平台的多项服务。法国内政部暂时关闭了省政府和地方行政网站,称是在等待PHP补丁的应用。德国联邦IT服务提供商ITZBund和比利时外交部也将网站下线,不过Safeguard报道称两者给出的原因不同:ITZBund表示未发现任何安全事件,而比利时外交部则引用了遭受攻击的报告。

watchTowr表示,其蜜罐网络Attacker Eye记录到实际的攻击利用尝试始于2026年10月21日,即漏洞泄露后的第二天,也是PHP发布修复补丁的当天。

两个漏洞对比

CVE-2026-109618 对比 CVE-2026-109619
CVE-2026-109618CVE-2026-109619
CVSS v4.0评分9.2(严重)
根本原因内存不足处理导致请求数据部分初始化
是否需要身份验证否
修复版本PHP 8.5.12 / 8.4.27 / 8.3.36 / 8.2.35
风险最高的配置据watchTowr称,Apache上的mod_php

如何保护你的网站和数据

  1. 如果你运营基于PHP的网站:更新到已修复的版本——PHP 8.5.12、8.4.27、8.3.36或8.2.35——并在之后重启所有PHP工作进程,因为PHP的安全通告和runZero都强调,更新是唯一完整的修复方法。
  2. 如果你仍在使用不再获得官方更新的PHP 7.4、8.0或8.1,请从你的Linux发行版或主机提供商处获取移植回来的安全补丁,因为据PHP存档页面显示,PHP项目本身已停止维护这些分支。
  3. 在你能够打补丁之前,runZero建议在服务器或代理层面采取临时措施:限制内存上限以防止应用程序覆盖该限制,强制执行较低的请求大小和分段上传限制,并禁用会话“上传进度”功能。
  4. 检查你的网络服务器访问日志,留意异常的multipart/form-data POST请求,Sansec表示这是已知攻击利用尝试的常见特征,同时留意意外的PHP内存峰值或致命错误。
  5. 作为普通网络用户,你无法修补自己不掌控的服务器,但你可以留意你所使用服务发出的数据泄露通知,为每个账户使用唯一密码,并开启双重身份验证,以确保仅凭泄露的密码不足以访问你的账户。

PHP表示,没有任何配置更改能够完全缓解这些漏洞。

— watchTowr关于CVE-2026-109618的常见问题解答

目前仍不明确的情况

根据目前所审阅的报道,专家们在多国政府决定将网站下线时,对当时主动利用漏洞的实际普及程度存在分歧;Safeguard报道称,荷兰政府表示其采取行动时没有发现任何主动利用的迹象,而watchTowr则另行确认第二天其蜜罐系统遭到了真实的攻击尝试。

常见问题

什么是PHP2Shell?
PHP2Shell是两个严重PHP漏洞CVE-2026-109618和CVE-2026-109619的别称,根据PHP自身发布的2026年安全通告以及watchTowr的分析,这些漏洞允许未经身份验证的攻击者在网络服务器上执行代码。
哪些PHP版本受到影响?
根据PHP官方存档页面和watchTowr的说明,2026年10月修复发布之前的PHP 7.4至8.5版本均受影响;已修复的版本为8.5.12、8.4.27、8.3.36和8.2.35。
由于PHP2Shell,我的个人数据是否面临风险?
只有当你使用的服务运行在未修补的PHP服务器上时,你的数据才可能面临风险;Sansec报道称其中一个漏洞可能暴露残留在服务器内存中的密码、API密钥和加密密钥,但个人用户自己无法修复此问题——只有网站运营方通过打补丁才能解决。
为什么各国政府将网站下线?
据安全博客Safeguard的一篇报道称,在PHP官方补丁准备就绪之前技术细节就已泄露之后,包括荷兰、芬兰、丹麦、法国、德国和比利时在内的多个政府出于预防考虑将公共网站下线。
更新我的浏览器或防病毒软件能否保护我免受PHP2Shell影响?
不能——PHP2Shell是网站所使用的PHP语言本身存在的服务器端漏洞,因此防护取决于网站运营方是否更新其PHP安装,而不取决于用户在自己设备上所做的任何更改。

来源

  1. PHP.net — Archive 2026 (security release details, CVE-2026-109618 & CVE-2026-109619)
  2. Help Net Security — PHP2Shell: Critical PHP vulnerabilities patched, update now!
  3. watchTowr — PHP2Shell FAQ: CVE-2026-109618 & CVE-2026-109619 Fixes
  4. Sansec — PHP2Shell: PHP RCE (CVE-2026-109618, CVE-2026-109619)
  5. Safeguard — PHP2Shell: Why Governments Took Websites Offline on 21 October
  6. runZero — Critical RCE vulnerability in PHP: Find impacted assets
  7. W3Techs — Usage statistics of PHP for websites

本文由人工智能撰写,发布前已通过自动来源核查。如发现错误,请申请更正。 申请更正或回应 · 我们如何制作

相关文章