CVE-2026-119977:WordPress 核心升级竞态漏洞,黑客可趁更新窗口远程执行代码

举报
yd_54922183 发表于 2026/11/06 14:20:57 2026/11/06
【摘要】 2026 年 10 月,WordPress 修复了一项影响核心升级流程的远程代码执行漏洞 CVE-2026-119977,CVSS 3.1 评分为 8.1。攻击者可能利用升级期间临时文件目录可被访问的问题,在无需登录的情况下执行服务器端代码。CISA 已确认该漏洞存在实际利用活动。本文介绍漏洞原理、受影响版本、自查方法及修复措施。

摘要: 2026 年 10 月,WordPress 修复了一项影响核心升级流程的远程代码执行漏洞 CVE-2026-119977,CVSS 3。1 评分为 8。1。攻击者可能利用升级期间临时文件目录可被访问的问题,在无需登录的情况下执行服务器端代码。CISA 已确认该漏洞存在实际利用活动。本文介绍漏洞原理、受影响版本、自查方法及修复措施。

一、漏洞概述

给网站升级,本来是为了修复安全问题。但 CVE-2026-119977 揭示了一个容易被忽略的风险:升级过程本身也可能产生短暂的攻击入口。

2026 年 10 月 28 日,WordPress 发布 7。1。4 安全版本,修复了核心升级过程中存在的竞态条件。10 月 29 日,WordPress 官方 GitHub 安全公告进一步解释了漏洞的触发场景。

项目 详细信息
CVE 编号 CVE-2026-119977
影响软件 WordPress Core
影响组件 核心升级程序、临时升级目录
漏洞类型 TOCTOU 竞态条件
CWE 编号 CWE-367
官方修复日期 2026 年 10 月 28 日
CVE 记录公开日期 2026 年 10 月 31 日
CVSS 3。1 8。1 / High
攻击方式 远程、无需认证、需要特定升级时机
潜在后果 服务器端远程代码执行(RCE)

这里有一个评分差异值得说明:WordPress 官方 GitHub 公告将该问题标为 Low,而 GitHub Advisory Database 对 CVE-2026-119977 给出的 CVSS 3。1 评分为 8。1(High)。官方的较低定级可能与攻击窗口短暂有关,但公告没有详细解释评分差异。

二、漏洞原理:为什么升级期间会出现攻击入口?

WordPress 的核心升级过程,需要先准备新版本文件,再将它们替换到现有网站目录。

对于使用完整安装包的升级,WordPress 会将新文件解压到 wp-content/upgrade/ 下的临时目录。

正常流程大致如下:

管理员或自动更新程序触发升级
             |
             v
下载 WordPress 新版本安装包
             |
             v
解压到临时升级目录
             |
             v
检查并准备新版本文件
             |
             v
替换正式网站文件
             |
             v
清理临时目录

问题出现在第三步。

1。 临时升级目录具有可预测性

旧版本 WordPress 使用的临时升级目录路径具有一定规律,而且该目录可能位于 Web 服务器能够直接访问的位置。

这意味着,攻击者可能在网站升级期间,通过 HTTP 请求访问正在解压的新版本文件。

例如,临时目录中可能出现如下结构:

wp-content/
└── upgrade/
    └── [临时目录]/
        └── wordpress/
            ├── wp-admin/
            │   └── setup-config。php
            ├── wp-includes/
            └── 。。。

这里的 setup-config。php 是 WordPress 安装配置程序的一部分。

正常安装时,它负责引导用户配置网站。对于已经运行的网站,这类安装程序通常不应该通过另一份临时核心文件被外部访问。

然而,在旧版完整包升级过程中,临时目录中的安装文件可能短暂暴露。

2。 TOCTOU 竞态条件

TOCTOU 是 Time-of-check to Time-of-use 的缩写,中文通常称为“检查时与使用时之间的竞态条件”。

它描述了一类程序错误:程序先检查某个资源的状态,随后使用该资源,但在这两个动作之间,资源的状态或可访问条件发生了变化。

对于此次漏洞,关键是升级文件从解压到清理之间存在一个时间窗口。

攻击者可以尝试在这一窗口内访问临时安装文件。

WordPress 升级程序          外部攻击者
       |                       |
开始解压完整安装包             |
       |                       |
临时目录出现                   |
       |                       |
       |                 猜测临时目录路径
       |                       |
       |                 请求安装程序
       |                       |
继续执行升级                   |
       |                       |
       |                 触发异常安装流程
       |                       |
       |                 可能执行服务器端代码
       |                       |
清理临时目录                   |

WordPress 官方安全公告确认,攻击者如果在完整包解压期间赢得这一竞争,就可能实现远程代码执行。

3。 为什么可能绕过 WordPress 安全插件?

许多 WordPress 安全插件依赖正式网站的 WordPress 初始化过程加载。

如果攻击者直接访问临时升级目录中的独立 PHP 文件,请求可能绕过正式站点中的部分插件防护逻辑。

因此,即使网站已经安装 Wordfence 等安全插件,仍需要检查 Web 服务器对临时目录的访问限制。

不过,具体攻击能否成功,还取决于服务器配置、升级时机及临时文件的实际状态。

三、哪些版本受到影响?

根据 WordPress 官方 GitHub 安全公告,漏洞影响从 4。7 到 7。1。3 的多个分支。官方已经将修复补丁回移到较早版本。

WordPress 分支 首个修复版本
7。1 7。1。4
7。0 7。0。8
6。9 6。9。11
6。8 6。8。12
6。7 6。7。11
6。6 6。6。11
6。5 6。5。14
6。4 6。4。14
6。3 6。3。14
6。2 6。2。15
6。1 6。1。16
6。0 6。0。18
5。x 各分支对应安全回移版本
4。7~4。9 各分支对应安全回移版本

例如,5。9 分支的修复版本为 5。9。20,4。7 分支为 4。7。39。

这些版本号来自 WordPress 项目维护者发布的官方安全公告。

对于长期没有升级的 WordPress 网站,建议优先迁移到当前受支持的主版本,以便获得后续安全维护。

四、哪些网站管理员需要担心?

此次漏洞主要涉及自行部署 WordPress 核心程序的网站。

部署环境 风险判断
公网 WordPress 网站,使用受影响版本 高,尤其在完整包升级期间
开启自动核心更新的网站 需要重点检查
企业自建 WordPress 内容管理平台 高
Docker 容器内运行的 WordPress 取决于镜像版本和升级方式
使用托管 WordPress 服务的网站 需要确认服务商补丁状态
仅在内网运行的 WordPress 主要面临可访问内网的攻击者
已安装对应安全版本的网站 漏洞已获得官方修复

攻击成功需要同时满足几个条件:目标运行受影响版本、发生完整安装包升级、临时目录能够通过网络访问,以及攻击者能够在短暂的升级窗口内触发相关文件。

尤其需要关注自动更新。

很多网站会在凌晨自动执行核心升级。攻击者如果持续监测特定网站,就可能等待其进入升级阶段。

网站平时运行正常,并不代表升级期间不存在风险。

五、风险现状:已经出现实际利用活动

1。 攻击难度有多高?

该漏洞的 CVSS 3。1 向量为:

CVSS:3。1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

其中:

  • AV:N:可通过网络触发。
  • AC:H:攻击复杂度高。
  • PR:N:无需已有账户权限。
  • UI:N:无需受害者交互。

攻击复杂度较高,主要因为攻击者需要准确命中升级窗口。

不过,自动化扫描可以反复尝试,降低人工操作成本。

2。 是否存在公开 PoC?

截至 2026 年 11 月 6 日,本次检索尚未核实到公开、完整且可稳定复现远程代码执行的 PoC。

公开资料已经描述了临时目录暴露、安装程序访问以及竞态条件,但这些技术说明与完整利用代码应当分别看待。

GitHub 上存在针对相关升级目录的扫描项目,其功能与完整 RCE 利用链也存在差异。

3。 是否已有真实攻击?

有。CISA 已将 CVE-2026-119977 加入 KEV(Known Exploited Vulnerabilities)目录。

加入日期为 2026 年 11 月 3 日。CISA 将其列为已知遭利用漏洞,意味着该机构掌握了符合收录标准的实际利用证据。

此外,Wordfence 的威胁监测数据显示,安全更新发布后不久,就有攻击流量开始探测 WordPress 临时升级目录。

公开报道提到,Wordfence 在安全公告发布后的约 21 小时内记录了超过 18,500 次针对相关路径的请求。

需要区分的是,这些请求属于扫描或攻击尝试记录。CISA 的 KEV 收录确认了漏洞存在实际利用活动,但目前公开资料尚未提供可独立核验的大规模网站入侵数量。

六、如何检查自己的 WordPress 网站?

1。 查看 WordPress 版本

如果已经安装 WP-CLI,可以在网站根目录执行:

wp core version

也可以在 WordPress 后台进入:

仪表盘 → 更新

查看当前核心版本以及可用安全更新。

对于容器部署:

docker exec <container_name> \
  wp core version --allow-root

上述命令要求容器内安装 WP-CLI。实际使用时,应根据容器用户权限调整执行方式。

2。 检查临时升级目录

在 WordPress 网站根目录执行:

find wp-content/upgrade \
  -type f -name "setup-config。php" -print

如果发现临时目录中存在安装程序文件,需要进一步确认是否有升级任务正在执行。

这项检查主要用于发现遗留文件。由于漏洞具有时间窗口特征,未发现文件也无法单独证明历史上没有受到攻击。

3。 检查 Web 访问日志

对于 Nginx:

sudo grep -E \
'wp-content/upgrade/。*\。php|setup-config\。php' \
/var/log/nginx/access。log

对于 Apache:

sudo grep -E \
'wp-content/upgrade/。*\。php|setup-config\。php' \
/var/log/apache2/access。log

如果日志已经轮转,需要同时检查历史归档文件。

重点关注 2026 年 10 月 28 日以来的异常请求,尤其是访问升级目录中 PHP 文件的记录。

如果请求返回 HTTP 200,还需要结合响应内容、请求时间、升级日志和服务器其他异常判断是否存在实际利用。

七、如何修复和缓解?

1。 升级 WordPress 核心

最直接的方法是安装官方安全版本。

如果使用 WP-CLI:

wp core update

升级完成后:

wp core version
wp core verify-checksums

第二条命令用于核验核心文件完整性。如果网站存在定制修改,需要结合实际部署情况解释校验结果。

对于 WordPress 7。1 分支,应至少升级至 7。1。4。

对于较早分支,应安装对应的官方安全回移版本,或者直接升级到受支持的新版本。

2。 阻止访问升级目录中的 PHP 文件

如果暂时无法升级,可以在 Web 服务器层面限制临时目录中的 PHP 文件访问。

例如,对于使用 Nginx 的 WordPress 网站,可以添加:

location ~* ^/wp-content/upgrade/。*\。php$ {
    return 403;
}

需要确保这条规则优先于通用 PHP 处理规则。

修改后先检查配置:

sudo nginx -t

确认配置有效后再重新加载:

sudo systemctl reload nginx

对于 Apache,可以在 wp-content/upgrade/ 目录中使用适当的访问控制配置,禁止通过 HTTP 执行 PHP 文件。

部署前需要确认网站实际的 WP_CONTENT_DIR、自定义升级目录以及 Web 服务器路径映射。

这类限制可以减少攻击者直接访问临时 PHP 文件的机会,但仍应尽快完成官方补丁更新。

3。 检查是否已经遭到入侵

由于该漏洞已被 CISA 列入 KEV,公网 WordPress 网站建议进行一次安全排查。

重点检查:

  • 最近是否出现未知管理员账户。
  • wp-content 下是否存在异常 PHP 文件。
  • 是否新增来源不明的插件或主题。
  • wp-config。php 是否发生未经授权的修改。
  • Web 访问日志是否存在针对临时升级目录的可疑请求。

如果发现明确的入侵迹象,应进一步检查服务器进程、计划任务、数据库账户和访问凭据,并从可信备份或镜像恢复受影响组件。

八、总结

CVE-2026-119977 揭示了 WordPress 核心升级过程中的一个特殊风险:用于安装新版本的临时文件,在短暂时间内可能成为外部攻击者的执行入口。

它具有三个值得关注的特点。

首先,漏洞涉及 WordPress 核心升级流程,影响多个长期维护分支。

其次,攻击者无需登录网站,但必须满足特定的升级时机和网络访问条件。

最后,CISA 已确认存在实际利用活动,说明这个短暂的攻击窗口已经引起攻击者关注。

对于 WordPress 管理员,建议优先完成核心版本升级,并在 Web 服务器层面限制对临时升级目录中 PHP 文件的访问。对于长期暴露公网的网站,还应检查历史访问日志及服务器文件完整性。

这次漏洞最重要的启示是:软件升级过程同样需要受到访问控制和安全监测。

资料核验日期:2026 年 11 月 6 日。

主要参考:WordPress 官方 7。1。4 安全发布公告、WordPress 官方 GitHub 安全公告 GHSA-4w3m-c66w-69mg、GitHub Advisory Database GHSA-p6jj-qrp3-7m4g、CISA KEV 漏洞目录、Wordfence 威胁情报及 BleepingComputer 安全报道。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。