Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
cpanel2shell-scanner — Scanner haute fidélité pour CVE-2026-41940 (contournement d'authentification cPanel & WHM) | Kitploit
Outils/GitHubGitHub/assetnote/cpanel2shell-scanner
Scanners de VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionAuthentificationDéveloppement de Charges Utiles
GitHubassetnote/cpanel2shell-scanner

cpanel2shell-scanner

Scanner haute fidélité pour CVE-2026-41940 (contournement d'authentification cPanel & WHM)

Voir le dépôt
92249il y a 4 moisVérifié par Kitploit

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

cpanel2shell-scanner

Un scanner haute-fidélité pour le contournement d'authentification cPanel/WHM référencé sous le nom CVE-2026-41940. Il identifie les hôtes vulnérables sans produire les faux négatifs courants dans les preuves de concept et détections publiques, et sans déclencher les mécanismes de verrouillage de compte et de liste blanche d'IP root qui interfèrent avec un scan naïf.

L'outil intègre également une chaîne d'exploitation distincte, activable sur option, pour un bogue de traversée de chemin CalDAV de la même famille sur cpdavd (ports 2079 en clair / 2080 TLS) — CVE-2026-29205 — qui permet à un attaquant distant de lire des fichiers arbitraires en tant que root une fois qu'une petite étape de configuration SMTP réussit. cPanel 11.134.0.26 corrige le bogue de durée de vie RAII sous-jacent, de sorte que la lecture s'exécute désormais sous l'identité du propriétaire du compte non privilégié ; la traversée elle-même atteint toujours cpdavd mais ne peut pas escalader au-delà de ce que ce compte peut déjà lire. La chaîne CalDAV est activée par --exploit et est désactivée par défaut car elle envoie de vrais emails et lit des fichiers sur des cibles confirmées — voir la section Mode exploit (actif).

Pourquoi ce scanner

La plupart des détections publiques de CVE-2026-41940 partagent trois problèmes. Ce scanner les aborde tous.

Vous pouvez lire notre article de blog sur cette technique de détection ici : https://slcyber.io/research-center/high-fidelity-check-for-the-cpanel-authentication-bypass-cve-2026-41940/

Il vérifie les chemins proxy, pas seulement les ports d'administration

La configuration Apache par vhost de cPanel installe un ProxyPass qui transmet /___proxy_subdomain_whm à 127.0.0.1:2086 et /___proxy_subdomain_cpanel à 127.0.0.1:2080 indépendamment de l'en-tête Host de la requête. Le RewriteCond ne contraint que la réécriture qui mappe le sous-domaine d'administration sur le chemin proxy ; le ProxyPass lui-même est inconditionnel. Atteindre ces chemins sur n'importe quel vhost servi par un Apache géré par cPanel atteint le même backend vulnérable que les ports d'administration.

Les scanners qui ne sondent que les ports 2082/2083/2086/2087 signaleront un hôte comme non vulnérable lorsque ces ports sont pare-feu, alors que le bogue est entièrement accessible via le port 443. Ce scanner sonde les ports 2087, 2083 et les deux chemins proxy sur le port 443 par défaut.

Il n'est pas bloqué par cphulkd ou la liste blanche d'IP root

cPanel fournit cphulkd, qui verrouille les comptes après un petit nombre de tentatives de mot de passe échouées, et authorized_whm_root_ips, qui restreint les connexions root à une liste configurée d'adresses sources. Un scanner qui exploite le contournement en tentant d'injecter une session pour root :

  • sera ignoré silencieusement lorsque l'IP du scanner n'est pas dans la liste blanche root, produisant un faux négatif ;
  • et contribuera aux événements de mot de passe échoués pour le compte qu'il cible, finissant par verrouiller ce compte et empêchant à la fois la détection et les connexions légitimes.

Ce scanner évite ces deux problèmes côté WHM en injectant expired=1 dans la charge utile de la session sous un nom d'utilisateur généré aléatoirement. L'injection de session est vérifiée en visitant l'URL cpsessXXXX résultante et en recherchant msg_code:[expired_session] dans le corps de la réponse, qui n'est présent que lorsque l'injection a réussi. Aucun compte réel n'est ciblé, donc aucun compte réel ne peut être verrouillé, et la liste blanche root est sans importance car aucune tentative de connexion root n'est effectuée.

Il utilise une liste de noms d'utilisateur là où c'est nécessaire

Le démon cPanel (cpaneld, ports 2083 et le chemin /___proxy_subdomain_cpanel) exige que le nom d'utilisateur fourni corresponde à un compte cPanel existant sur le disque (-f /var/cpanel/users/$user). Un nom d'utilisateur root ne satisfera jamais cette vérification car root est un utilisateur système, pas un utilisateur cPanel. Les détections qui n'essaient que root produisent des faux négatifs sur cette surface. Ce scanner utilise une liste configurable de noms d'utilisateur cPanel courants contre la surface cPanel et revient au chemin du nom d'utilisateur aléatoire sur la surface WHM, qui n'a pas une telle restriction.

Comment fonctionne la détection

Pour chaque cible, le scanner effectue les étapes suivantes par surface :

  1. Envoie une requête GET /login et lit l'en-tête Set-Cookie pour soit whostmgrsession (WHM) soit cpsession (cPanel). Le cookie contient un composant de nom de session séparé par des virgules.
  2. Envoie une requête GET / avec un en-tête Authorization: Basic dont la valeur décodée est <user>:\xff\nexpired=1. Le \nexpired=1 final est la charge utile d'injection de session. Le cookie de session de l'étape 1 est renvoyé inchangé.
  3. Lit l'en-tête Location de la réponse et extrait le jeton cpsessXXXX.
  4. Envoie une requête GET /<cpsessXXXX>/ avec le cookie d'origine et recherche msg_code:[expired_session] dans le corps. Sa présence prouve que l'injection de session a réussi et que l'hôte est vulnérable.

Sur WHM (port 2087 et le chemin /___proxy_subdomain_whm sur le port 443), le nom d'utilisateur est un u aléatoire suivi de dix caractères hexadécimaux. Sur cPanel (port 2083 et le chemin /___proxy_subdomain_cpanel sur le port 443), le scanner parcourt sa liste de noms d'utilisateur et s'arrête au premier correspondant.

Par défaut, le scanner sonde les ports 2087, 2083 et 443 dans cet ordre et s'arrête dès qu'une surface confirme la vulnérabilité.

Exploit de traversée de chemin CalDAV (--exploit)

CVE-2026-29205 — Mise à jour de sécurité cPanel/WHM WP2, 13 mai 2026. Correction dans cPanel 11.134.0.26. L'avis suit la même régression de baisse de privilèges cpdavd que cette chaîne d'exploitation utilise.

Article complet sur le bogue et la chaîne d'exploitation : https://slcyber.io/research-center/new-age-of-collisions-reading-arbitrary-files-pre-auth-as-root-in-cpanel-cve-2026-29205

cpdavd sur les ports 2079 (HTTP en clair) et 2080 (TLS) fait confiance au chemin <principal>/<collection>/... qu'il construit lors du traitement des ressources CalDAV/CardDAV. En forgeant une requête dont le composant de chemin encode des segments .. et en la pointant vers un dossier maildir dont le nom sur le disque encode également une traversée (x-attachment-1-y), cpdavd peut être contraint de lire n'importe quel fichier sur le disque en tant que root, indépendamment de la propriété ou des permissions — y compris /etc/shadow, /etc/passwd et les spools de messagerie par utilisateur.

La défense en profondeur qui était censée réduire les privilèges au propriétaire du compte avant la lecture a silencieusement échoué : l'objet Cpanel::AccessIds::ReducedPrivileges était construit dans un contexte vide, donc son destructeur a restauré les privilèges root avant que la lecture ne s'exécute. cPanel 11.134.0.26 lie l'objet à une variable lexicale my $privs afin qu'il survive à la chaîne -f / stat / open / read ; sur les hôtes corrigés, la lecture s'exécute donc sous l'identité du propriétaire du compte non privilégié au lieu de root.

Le dossier vulnérable doit exister sur le disque avant que la lecture ne fonctionne. cPanel crée automatiquement un dossier nommé .x-attachment-1-y pour le destinataire <user>+x-attachment-1-y@<domain> la première fois qu'un email arrive à cette sous-adresse. La chaîne est donc :

Télécharger l’outil