威胁动态

CVE-2026-87902 — WordPress 核心未认证文件包含(有条件的远程代码执行):解读与修复

CVE-2026-87902 是 WordPress 核心中的未认证文件包含漏洞(CWE-98),在条件满足时可导致远程代码执行。9 月 22 日在 7.1.2 中修复,并回溯至 4.7;9 月 25 日被收录进 KEV。

发布于 2026-09-26 更新于 2026-10-04 最后核实 2026-10-05 4 分钟阅读
本页目录

这是一篇针对正在被主动利用漏洞(已列入 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 日),标注需要进行取证排查
4.7–7.1.1
受影响版本(约十年的发布版本)
无需认证
攻击者所需条件
3 天
从修复(9 月 22 日)到 KEV 收录(9 月 25 日)
3%
9 月 25 日的 EPSS——与 KEV 不一致

等待的风险有多大?

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.17.1.0–7.1.17.1.2
7.07.0.0–7.0.57.0.6
6.96.9.0–6.9.86.9.9
6.86.8.0–6.8.96.8.10
6.7 至 4.7直到各分支修复之前的版本各分支的修复版本(6.7.9 … 4.7.37)
4.7 之前—无修复(已停止支持)

应该怎么做

1

检查版本并升级到修复版本(首要任务)

在控制面板中进入“仪表盘 → 更新”,查看版本。如果不是 7.1.2(或你所在分支的修复版本),请今天就更新。只有最新版本获得积极支持,因此 7.1.2 是最安全的目标。

2

找出自动更新覆盖不到的站点

在支持后台更新的站点上,更新会自动开始。风险在于那些不在此路径上的站点:已关闭自动更新、通过 Git 或容器镜像固定核心版本(更新后一旦重新构建,旧版本会在无提示的情况下被恢复)、主机阻止更新,以及没人记得的旧站点。如果你管理多个站点,请逐一检查(安全资产清单检查表)。

3

关闭 PHP 的 register_argc_argv(纵深防御)

处理 Web 请求的 PHP 几乎从不需要此设置。在 php.ini(或主机的 PHP 设置)中设置 register_argc_argv = Off;如果你使用容器,请检查镜像的配置。它不能替代更新,但它切断了从文件包含到代码执行的路径,其作用范围远超这一个 CVE。

4

在更新前检查是否已被入侵

如果某个站点在 9 月 22 日之后仍未打补丁,请将这段时间视为可疑;CISA 也将此 CVE 标注为需要进行取证排查。至少检查:(1)/tmp、/var/tmp 或 wp-content 下不认识的 .php 文件;(2)访问日志中包含百分号编码目录遍历(即 ../ 的等效形式)的请求;(3)你不认识的管理员用户或最近新增的插件。

5

如果发现异常,不要只停留在“已打补丁”

如果代码可能已经执行,补丁并不会删除已放置在服务器上的文件,也无法收回已被窃取的密钥。请轮换数据库密码、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(修复当天开始探测,次日出现代码执行尝试;本文仅采用其时间线和防御方检查项)

延伸阅读

FAQ

QCVE-2026-87902 允许什么行为?
A

根据 WordPress 的安全公告,未认证的攻击者可以让页面模板解析(get_page_template)包含主动选定的、位于活动主题目录之外且可读的本地 .php 文件。当服务器环境和活动主题的前提条件都满足时,这会导致远程代码执行。CISA 于 2026 年 9 月 25 日在确认存在主动利用后将其加入 KEV。

Q哪些版本受影响,应该更新到哪个版本?
A

4.7.0 至 7.1.1。每个分支都有修复版本:7.1.2、7.0.6、6.9.9、6.8.10,依此类推,直至 4.7.37。4.7 之前的分支没有修复。只有最新版本获得积极支持,因此升级到 7.1.2 是最安全的选择。

Q如果开启了自动更新,我就安全了吗?
A

在支持后台自动更新的站点上,更新会自动开始。但它无法覆盖已关闭自动更新的站点、通过 Git 或容器镜像固定核心版本的站点,或主机阻止更新的站点。请在控制面板中检查版本。

Q如果我没有使用列出的任何主题,是否安全?
A

公告称,远程代码执行同时需要主题端和服务器端的条件。但父主题或子主题都可能满足主题端条件,而且很少有站点所有者清楚自己主题的目录结构。直接更新比判断自己是否符合条件更快、更可靠。

QEPSS 只有 3%,为什么还这么紧急?
A

EPSS 是一种模型,根据历史数据估计未来 30 天内被利用的概率,对于刚披露的漏洞,它可能滞后于实际情况。KEV 记录的是已确认的利用。两者不一致时,以 KEV 为准。