SIG 5010 3287 字 约 9 分钟 建站实战 / 建站雷达

建站雷达(9.21–9.23):WordPress 五天里发了第二次紧急补丁,cPanel 多了一条直通 root 的路

这几天的主线只有一条:打补丁。WordPress 在五天里发了第二个安全版,cPanel 一口气修掉三个洞——其中最严重的那个,能把任意一个托管账号直接变成 root。

WordPress 7.1.2:距上一个安全版只有五天(9 月 22 日)

WordPress 9 月 22 日放出 7.1.2,只含一个修复,编号 CVE-2026-87902,官方定级为 critical,安全厂商 Patchstack 给出的 CVSS 分数是 9.2。

问题出在挑选页面模板文件的那段逻辑里。模板文件名的一部分直接来自 URL,而在受影响的版本中,这个值没有过一遍旁边代码早就在用的 ../ 穿越检查,名字最终拼成 page-{值}.php。于是一次成功攻击需要三个条件叠加:当前主题下存在一个以 page- 开头的顶层文件夹、目标文件以 .php 结尾,并且服务器上恰好有一个「被加载就有用」的 PHP 文件。这三样凑齐之后,未登录的攻击者就能让站点加载活动主题目录之外的一个可读本地 PHP 文件,并在特定环境下升级为远程代码执行——这正是官方措辞里那个「某些服务器」的限定。

两个放大风险的开关值得单独记一下。部分旧版默认主题自带符合 page- 前缀的目录,现在的默认主题没有;PHP 的 register_argc_argv 在 8.5 上默认关闭,在更早版本上默认打开,官方 Docker 镜像与 cPanel 环境同样是打开的。

真正值得注意的是节奏。上一个版本 7.1.1 是 9 月 17 日发的安全版,修的是 11 个与这次无关的问题。五天之后又来一个,意味着上周刚更新过的站点这次还得再更新一遍。修复已回迁到 4.7 以来所有仍在接收安全更新的分支,对应关系是 7.1.x 升到 7.1.2、7.0.x 到 7.0.6、6.9.x 到 6.9.9、6.8.x 到 6.8.10,最老一直到 4.7.37。WordPress 没有提供单独的临时规避方案,升级就是修复本身。

cPanel 一次修了三个洞,其中一个能把账号变成 root(9 月 22 日)

同一天,cPanel 发布了三个漏洞的修复。最严重的 CVE-2026-87899 位于 CalDAV 与 CardDAV 服务里,公告写得相当直白:一个已登录的账号持有人可以以 root 身份执行代码,进而取得整台服务器的控制权。它列出的前置条件只有一项——你得有一个 cPanel 账号。放到共享主机上,这句话意味着任何一个套餐用户、任何一个靠钓鱼或撞库拿到客户密码的人,都能走到同一个位置。

cPanel 面板与 root 提权漏洞示意
这次三个漏洞里有两条落在 cPanel 的 CalDAV / CardDAV 服务上,其中一条直接通往 root。(图片来源:Hackvolt)

第二个洞 CVE-2026-87900 在 WP Toolkit 插件里,允许一个已登录的 cPanel 用户修改其他账号下的数据库,问题出在插件处理建库命令的方式上。cPanel 没有说明可以做哪些修改、能否读取其他账号的数据。这里有个容易漏掉的点:WP Toolkit 是独立的包,有自己的升级路径,升级 cPanel & WHM 并不会把它一起带上去。第三个洞 CVE-2026-68490 同样在 CalDAV 与 CardDAV 服务里,本地用户可以读到其他账号的日历与联系人,但不能修改,也拿不到 root。

受影响的版本是 cPanel & WHM 120 及以后,修复版本按分支分别是 11.134.0.57、11.136.0.41、11.138.0.8,WP Squared 则是 11.138.1.11。三个洞都由研究者 Ali Mustafa(代号 rz1027)报告。截至 9 月 23 日,它们都还没有进入 CISA 的已利用漏洞目录,cPanel 也没有给出「如何判断服务器在打补丁前是否已被攻破」的方法。

机器上跑着 cPanel 的,今天就去后台看一遍版本号,并单独确认 WP Toolkit 的版本。 命令行下更新面板用 /usr/local/cpanel/scripts/upcp --force,这次更新还会顺带修好已有账号上日历与联系人的权限。

顺手要过一遍的:PHP、nginx、Redis、libxml2 的 9 月补丁

这几个组件平时不太被直接接触,但它们的漏洞会通过上层应用传导。PHP 出了 8.5.10 与 8.4.25 两个安全版本;nginx 主线更新到 1.31.6,同日的稳定版 1.30.5 携带同一个修复 CVE-2026-90439——HTTP/3 模块里的一个堆缓冲区溢出,CVSS 6.9,只在使用 OpenSSL 3.5.0 及更早版本、并且真的在提供 HTTP/3 服务时才会命中,影响范围是 1.29.2 到 1.31.5。有一点可以省心:cPanel 的 EasyApache 4 并不构建这个模块,所以 EA4 环境不受这条影响。

Redis 8.10.2 把更新级别标成了安全,修的是两件事。一是事务队列里的命令,在执行前 ACL 权限被撤销之后,仍然可能访问到对应的键;二是集群总线协议在不启用 tls-cluster 时没有自己的认证,任何能连到某节点总线端口的机器都能加入这个集群,新版为此加了启动告警和一个新的 cluster-bus-port-protected-mode 选项(默认关闭)。libxml2 从 2.15.3 升到 2.15.4,其中包含 CVE-2026-86140 这条高危的栈缓冲区溢出。

这里有一条最容易被忽略的纪律:只更新包、不重启对应的服务进程,等于没更新。 多数发行版需要重启服务单元,运行中的进程才会真正加载新版本;面板类工具对 PHP 版本另有更新节奏,OpenLiteSpeed 这类特定环境未必同步,需要单独确认一遍。

这几天你可以做什么

跑 WordPress 的,把站点升到 7.1.2,升完确认一下当前主题的顶层目录里有没有以 page- 开头的文件夹。
用 cPanel / WHM 的,核对面板版本号,并单独把 WP Toolkit 升到 6.11.3 或更高。
跑 nginx、PHP、Redis、libxml2 的,对照上面几个版本号自查,改完记得重启服务进程,别只看包版本。

附:本文信息来源

一手信息

媒体报道

原创声明:本文由 618A 情报站整理撰写,基于公开信息与实测记录,转载请注明出处并保留原文链接。

下一篇 硬件雷达(9.21–9.23):两天两场国产旗舰发布,高通把旗舰芯片拆成了两颗