这是一篇针对正在被主动利用漏洞(已列入 CISA KEV)的快速解读。内容包括发生了什么、哪些人受影响以及如何应对,立场为防御方,不包含复现步骤。
- CVE
- CVE-2026-87902(GHSA-7hp8-65ch-5whp)
- 严重程度
- NVD:CVSS v3.1 8.1(攻击复杂度高)/WordPress 公告:CVSS v4.0 9.2,严重
- 类型
- 文件包含(CWE-98)——页面模板解析中的路径遍历
- 影响
- 包含主题目录之外的 .php 文件;在主题与服务器条件同时满足时导致远程代码执行
- 前提条件
- 无需认证,无需用户交互
- 受影响版本
- WordPress 4.7.0–7.1.1
- 修复
- 7.1.2,2026 年 9 月 22 日发布,并包含回溯至 4.7 的各分支修复
- 利用情况
- 已列入 CISA KEV(2026 年 9 月 25 日添加,整改期限为 9 月 28 日),标注需要进行取证排查
等待的风险有多大?
WordPress 是使用最广泛的内容管理系统,此漏洞涵盖约十年的发布版本,且无需认证、无需用户交互。一家专注于 WordPress 的安全公司报告称,探测在修复发布当天开始,次日转为代码执行尝试,并被纳入通用扫描工具。扫描是不加区分的,你的站点规模无关紧要。
这是什么类型的漏洞?
WordPress 通过在主题目录中查找来决定用哪个模板文件渲染页面。根据公告,该页面模板解析存在缺陷:未认证的攻击者可以让它包含主题目录之外的 .php 文件。当外部输入决定加载哪个文件时,这就是文件包含(CWE-98)。本站不描述其利用方式。
仅凭这一点并不会导致代码执行。公告将远程代码执行的条件分为主题端和服务器端两部分。
主题端条件(据公告)
- 活动的父主题或子主题在顶层有一个名称以
page-开头的目录(例如page-templates) - 公告称,这适用于旧版 Twenty Twelve 和 Twenty Fourteen 主题,以及 Neve、Hestia 和 Sydney 等一些流行的第三方主题(问题出在核心的处理方式,而非主题本身)
服务器端条件(据公告)
- 服务器上存在一个被包含时会产生危险行为的 .php 文件,并且可被 Web 服务器账户读取
- PHP 的
register_argc_argv处于开启状态会大大降低满足该条件的难度 - 公告称,官方 PHP Docker 镜像以及 PHP 版本低于 8.5 时的默认 cPanel 配置均受影响
① 核心漏洞:主题之外的 .php 可被包含
→ 已在 7.1.2(及各分支发布版本)中修复
② 主题条件:目录以 page- 开头
→ 很难自行判断;不要依赖自行判断
③ 服务器条件:存在危险的 .php 且 register_argc_argv 开启
→ 关闭该设置可阻止整类攻击
哪些版本受影响
| 分支 | 受影响 | 已修复 |
|---|---|---|
| 7.1 | 7.1.0–7.1.1 | 7.1.2 |
| 7.0 | 7.0.0–7.0.5 | 7.0.6 |
| 6.9 | 6.9.0–6.9.8 | 6.9.9 |
| 6.8 | 6.8.0–6.8.9 | 6.8.10 |
| 6.7 至 4.7 | 直到各分支修复之前的版本 | 各分支的修复版本(6.7.9 … 4.7.37) |
| 4.7 之前 | — | 无修复(已停止支持) |
应该怎么做
检查版本并升级到修复版本(首要任务)
在控制面板中进入“仪表盘 → 更新”,查看版本。如果不是 7.1.2(或你所在分支的修复版本),请今天就更新。只有最新版本获得积极支持,因此 7.1.2 是最安全的目标。
找出自动更新覆盖不到的站点
在支持后台更新的站点上,更新会自动开始。风险在于那些不在此路径上的站点:已关闭自动更新、通过 Git 或容器镜像固定核心版本(更新后一旦重新构建,旧版本会在无提示的情况下被恢复)、主机阻止更新,以及没人记得的旧站点。如果你管理多个站点,请逐一检查(安全资产清单检查表)。
关闭 PHP 的 register_argc_argv(纵深防御)
处理 Web 请求的 PHP 几乎从不需要此设置。在 php.ini(或主机的 PHP 设置)中设置 register_argc_argv = Off;如果你使用容器,请检查镜像的配置。它不能替代更新,但它切断了从文件包含到代码执行的路径,其作用范围远超这一个 CVE。
在更新前检查是否已被入侵
如果某个站点在 9 月 22 日之后仍未打补丁,请将这段时间视为可疑;CISA 也将此 CVE 标注为需要进行取证排查。至少检查:(1)/tmp、/var/tmp 或 wp-content 下不认识的 .php 文件;(2)访问日志中包含百分号编码目录遍历(即 ../ 的等效形式)的请求;(3)你不认识的管理员用户或最近新增的插件。
如果发现异常,不要只停留在“已打补丁”
如果代码可能已经执行,补丁并不会删除已放置在服务器上的文件,也无法收回已被窃取的密钥。请轮换数据库密码、wp-config.php 中的认证密钥与盐值、管理员密码以及第三方 API 密钥,并删除可疑文件。完整流程见漏洞修复手册和WordPress 安全。
本站观点:修复一经发布,攻击随即开始
在近期的Adobe Commerce 案例中,从修复到进入 KEV 相隔 44 天。而这里只有三天。差异在于补丁差异暴露攻击方式的容易程度,以及运行该产品的站点数量。按报告的时间线,形如补丁差异的探测在修复发布当天就开始了。
由此得出的教训是:对于广泛使用的产品,修复并不会给你额外的时间。攻击者在修复发布的那一刻就开始研究,人工很难跟上这种节奏。因此,本站认为确保自动更新可靠送达,比补丁流程本身更为重要。收到自动更新的站点,在其所有者尚未察觉任何情况之前就已受到保护。真正处于风险中的,是那些没有意识到自己不在自动更新范围内的站点。
还有一点:EPSS 为 3%。EPSS 有其用处,但对于刚披露的漏洞存在滞后。当 KEV 与 EPSS 不一致时,以 KEV 为准——它是已确认的事实。
资料来源
- WordPress — GHSA-7hp8-65ch-5whp(受影响及修复版本、远程代码执行前提条件、CVSS v4.0 9.2)
- WordPress.org — WordPress 7.1.2 发布说明(2026 年 9 月 22 日;回溯至 4.7,自动更新)
- NVD — CVE-2026-87902(CWE-98,CVSS v3.1 8.1)
- CISA KEV — 已知被利用漏洞目录(2026 年 9 月 25 日添加,9 月 28 日到期,需要取证排查)
- FIRST — EPSS(2026 年 9 月 25 日为 0.029)
- 观察报告 — Patchstack(修复当天开始探测,次日出现代码执行尝试;本文仅采用其时间线和防御方检查项)