WordPress:未认证路径遍历导致条件性 RCE

一个新披露的 WordPress 漏洞允许未认证路径遍历,并在特定配置下可能导致远程代码执行,尤其是在与常见主题结构以及不安全的 PHP 环境(如官方 Docker 镜像)结合时。评论者就实际风险覆盖面展开争论,指出许多主题遵循了 WordPress 自身的目录建议,而且核心补丁现已回补到旧版本。该事件再次引发对 WordPress 安全模型、插件生态以及依赖 CVSS 基础分的广泛批评;一些人认为组织应当隔离或彻底替换 WordPress,而另一些人则强调,只要配置得当并做好加固,它仍然可以相当安全。

漏洞与影响

  • 核心问题:对 get_page_template / locate_template 的未清理使用,允许路径遍历,从而包含服务器上已存在的任意 PHP 文件。
  • 主要前提:主题包含顶层的 page-* 目录(例如 page-templates/),而 WordPress 文档明确推荐这样做。几位评论者认为,这使得大量主题都存在漏洞,而不只是“寥寥几个”。
  • 在全新安装中,随机用户无法上传 PHP,但攻击者可以滥用系统上任何现有的“可执行命令的 PHP”。

条件与利用链

  • 示例利用链:将此缺陷与插件中众多未认证文件上传漏洞之一结合,以达到条件性 RCE;攻击者可能更偏好这种方式,而不是直接上传 webshell,以规避加固配置和日志。
  • 官方 PHP Docker 镜像历史上随附启用了 register_argc_argv 且未设置 open_basedir 的 pearcmd.php,一旦实现路径遍历,这就成了一个强大的目标。
  • 有人认为,在使用热门主题并搭配默认 Docker 或共享主机设置的网站上,这实际上是“可驱动式利用”的。

补丁状态与部署

  • 已在 WordPress 7.1.2 中修复,并“出于礼貌”回补到 4.7 之后的分支(一个有问题的自动更新版本除外)。
  • 一位评论者起初怀疑打补丁后主题是否仍需审计,但最终认为核心修复应足以消除主题行为带来的问题。
  • WordPress 并不提供真正的 LTS;较旧分支依赖选择性回补,未知漏洞仍可能未被修复。

CVSS 评分争议

  • 一派观点:CVSS 分数是“通灵板”式数字,容易被操纵,而且常与现实风险不符;用它们来筛选该读什么是危险的。
  • 另一派观点:基础 CVSS 是衡量技术影响的有用第一步;组织应结合各自环境使用计算器和补偿性控制进行重新评分。
  • 对比示例:这个 WordPress RCE(9.x)与 Hugo 工具链漏洞(同样 9.3)——数值严重性相同,但实际暴露面截然不同。

对 WordPress 安全性的评价

  • 强烈批评: “RCE-as-a-Service”、“一坨垃圾”、代码混乱、类型不佳、许多未文档化 API、不安全的默认模型(站点可以写入自己的代码;上传内容常常可执行;插件极大扩大攻击面)。
  • 反驳意见:它极其流行,包括高价值站点;只要有专业知识、加固和严格的插件使用纪律,仍然可以安全运行。问题往往源于低成本承包商和非专家把插件与主题“乐高式拼接”起来。
  • 有人认为,流行度和可扩展性不可避免地会吸引攻击者;也有人说,仅靠流行并不能解释 WordPress 的漏洞历史。

替代方案与迁移

  • 多位参与者表示已从 WordPress 迁移到静态生成器(Hugo、Astro)或大多静态的自定义 PHP,并描述:
    • 运维复杂度和安全焦虑大幅降低。
    • 摆脱插件冗余、黑箱行为和脆弱升级的束缚。
  • 不过,即使静态工具也可能存在高 CVSS 漏洞(Hugo 例子);区别在于生成的网站是静态 HTML,因此运行时暴露要低得多。
  • 对静态站点来说,评论系统仍然是难点;建议包括第三方服务和自托管的轻量系统。

更广泛的安全观察

  • 路径遍历被视为一种反复出现的漏洞类别,源于糟糕的文件系统抽象;一位评论者主张通过库支持来缓解这一问题。
  • 公共服务器日志显示持续存在对 PHP 漏洞的扫描,WordPress 路径和泄露的 .env 文件经常成为探测目标。
  • 有人推测,AI 驱动的代码分析可能会大幅增加所有生态中的已发现漏洞数量,从而挑战人们对哪类软件“最易被利用”的假设。