WordPress 官方发布 7.1.2 安全更新,修复一个 CVSS 4.0 评分 9.2 的严重漏洞(CVE-2026-87902):未经认证的攻击者可以包含活动主题目录之外的可读本地 PHP 文件。如果主题根目录存在以 page- 开头的顶级目录、且服务器上存在合适的可读 PHP 文件,漏洞可导致远程代码执行。

漏洞由安全研究员 Robert Ressl 于 7 月 20 日通过 WordPress HackerOne 项目负责任披露,WordPress 次日确认,并在 9 月 15 日告知修复将随下个版本发布。补丁发布后不到五小时,Patchstack 就观测到了针对该漏洞的探测尝试。

漏洞出在 WordPress 解析页面模板的方式上。受影响版本中,get_page_template() 函数使用请求中的 pagename 值构造页面模板文件名,其中额外的 URL 解码步骤可以把编码后的路径遍历序列转换为指向主题目录之外的路径;而 locate_template() 在加载文件前没有校验解析后的文件是否仍位于批准的主题目录内。利用链需要:一个可通过 page_id 选择的已发布页面、主题根目录存在 page- 前缀的目录、以及一个存在的可读本地 PHP 文件——不需要账户、Cookie、会话、nonce、插件或用户交互。

在 Ressl 的演示环境中,pearcmd.php 提供了从本地文件包含到 PHP 代码执行的路径,该路径依赖 PEAR 组件可用、register_argc_argv 对 Web 请求启用、以及存在可写位置。Patchstack 称这是"WordPress 近期修复的最严重问题"。

7.1.2 通过两处变更修复:在解码后的页面名加入模板候选列表前增加 validate_file() 检查;新增 _wp_is_template_path_allowed() 校验,确认涉及遍历的路径仍在批准目录内。修复已向后移植至 4.7 以来的所有分支。

管理员还应采取加固措施:对 Web 请求禁用不需要的 register_argc_argv、移除未使用的可公开访问的 PEAR 入口文件、限制 PHP 账户的文件系统访问和写权限。

本文编译自 WP Content,原文地址:https://wp-content.co/news/wordpress-7-1-2-patches-critical-unauthenticated-path-traversal/