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
CVE-2026-41940-analysis — Analyse technique du contournement d'authentification cPanel/WHM | Kitploit
Outils/GitHubGitHub/oguz-kagan-akar/cve-2026-41940-analysis
Authentification et AutorisationAnalyse des VulnérabilitésExploitationSécurité WebRenseignement sur les MenacesArticles et RechercheApprentissage et ÉducationRéponse aux Incidents

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 →
GitHub
oguz-kagan-akar/cve-2026-41940-analysis

CVE-2026-41940-analysis

Analyse technique du contournement d'authentification cPanel/WHM

Voir le dépôt
54il y a 3 moisPas encore vérifié
Partager

CVE-2026-41940 — cPanel & WHM Contournement Racine Pré-Authentification via Injection CRLF dans les Fichiers de Session

Une analyse technique approfondie axée sur les défenseurs


1. Résumé exécutif

ChampValeur
ID CVECVE-2026-41940
CVSS v3.19.8 (Critique) — Réseau / Faible Complexité / Aucun Privilège / Aucune Interaction Utilisateur
Classe de vulnérabilitéInjection CRLF pré-authentification → empoisonnement de fichier de session → contournement d'authentification
CWECWE-93 (Neutralisation incorrecte des séquences CRLF), plus proche de CWE-117 (Neutralisation incorrecte des sorties pour les journaux/fichiers), car le CRLF injecté atterrit dans un fichier de session sur disque plutôt que dans un en-tête de réponse HTTP
Produits concernéscPanel, WHM (WebHost Manager), WP Squared
ImpactAcquisition non authentifiée et à distance d'une session administrative root entièrement privilégiée dans WHM
Date de divulgation28 avril 2026 (avis de sécurité cPanel)
Attribution CVE29 avril 2026
Exploitation dans la natureObservée dès le 23 février 2026, selon l'hébergeur KnownHost — environ deux mois avant la publication du correctif
CISA KEVAjouté peu après la divulgation
Exposition estimée~1,5 million d'instances cPanel accessibles sur Internet (télémetrie Shodan citée par Rapid7) ; cPanel détient une part estimée à 94 % du marché des panneaux de contrôle web (W3Techs)
Solution de contournementAucune — le correctif est la seule remédiation complète

cPanel & WHM est le logiciel de panneau de contrôle dominant pour l'hébergement web mutualisé et revendeur. cPanel est l'interface client pour les comptes ; WHM est l'interface administrative de niveau racine utilisée par les hébergeurs et les propriétaires de serveurs. Les deux sont servis par le même démon Perl, cpsrvd, écoutant sur des paires de ports pour chaque surface (cPanel : 2082/2083, WHM : 2086/2087, Webmail : 2095/2096).

CVE-2026-41940 permet à un attaquant sans aucun identifiant de manipuler l'état de session sur disque avant que l'authentification n'ait lieu, amenant cpsrvd à réinterpréter ultérieurement les données fournies par l'attaquant comme des attributs de session légitimes, entièrement authentifiés et privilégiés (root). Le résultat est une compromission complète du plan de gestion pour chaque site web et compte hébergé sur la machine — ce n'est pas un problème de locataire unique, mais un problème à l'échelle de l'hôte, du fournisseur et, globalement, de l'industrie, compte tenu de la concentration du marché de cPanel.


2. Pourquoi cette vulnérabilité est importante au-delà de son score CVSS

Un score CVSS de 9.8 est assez courant pour devenir lassant à lire. Trois facteurs structurels rendent CVE-2026-41940 exceptionnellement grave en pratique :

  1. Le rayon d'explosion concerne l'ensemble du serveur, pas un compte. La compromission de WHM est une compromission root. Chaque compte client, chaque base de données, chaque clé privée TLS, chaque sauvegarde et chaque zone DNS sur ce serveur sont immédiatement dans le périmètre.

  2. C'était un véritable jour zéro pendant environ deux mois. La télémétrie de KnownHost situe l'exploitation initiale vers le 23 février 2026, bien avant le correctif du 28 avril. Toute organisation exposée sur Internet durant cette période doit considérer une compromission comme possible, pas seulement théorique, et devrait mener une évaluation de compromission rétrospective plutôt que de se fier à « nous avons corrigé, donc nous sommes en sécurité ».

  3. La plupart des organisations concernées ne peuvent pas corriger elles-mêmes. cPanel est généralement déployé par les hébergeurs pour le compte des locataires. Les clients finaux n'ont aucun contrôle au niveau du code sur le correctif et dépendent entièrement de la cadence de mise à jour de leur fournisseur — c'est exactement pourquoi plusieurs grands hébergeurs (Namecheap, KnownHost, HostPapa, InMotion) ont choisi de bloquer préventivement le trafic entrant vers les ports concernés plutôt que d'attendre que chaque locataire mette à jour.

Ce troisième point mérite d'être approfondi. cPanel contrôlerait environ 94 % du marché des panneaux de contrôle. Un seul défaut logique dans le code de gestion de session d'un seul fournisseur est devenu, pendant plusieurs semaines, une vulnérabilité d'accès root à l'échelle de l'industrie. Ce risque de concentration est un thème récurrent à internaliser indépendamment de cette CVE spécifique.


3. Contexte architectural

3.1 cpsrvd et le modèle de ports

cpsrvd est un démon Perl de longue durée qui sert les trois surfaces produit cPanel à partir du même binaire et, surtout, du même chemin de code de gestion de session :

Paire de portsSurfacePublic
2082 / 2083cPanelClients finaux (par compte)
2086 / 2087WHMAdministrateurs root/revendeurs
2095 / 2096WebmailUtilisateurs de messagerie

Étant donné que les trois surfaces partagent la logique de session vulnérable, l'exposition de l'un quelconque de ces six ports est suffisante pour l'exploitation — il n'y a pas de surface « moins exposée » de manière significative parmi elles. Dans des environnements bien segmentés, aucun de ces ports ne devrait être directement accessible depuis Internet en premier lieu ; en pratique, la commodité de gestion, les arrangements d'hébergement hybrides et la dérive des pare-feux signifient que beaucoup le sont.

3.2 La double représentation de session

Les sessions cPanel sont persistées dans deux représentations parallèles sur disque, apparemment pour des raisons de performance :

  1. Fichier de session brut (/var/cpanel/sessions/raw/<session-id>) — un format texte brut orienté ligne clé=valeur, un attribut par ligne.
  2. Cache JSON (/var/cpanel/sessions/cache/<session-id>, conceptuellement) — un document JSON structuré, lu préférentiellement par le chemin de requête normal car moins coûteux à analyser.

En fonctionnement ordinaire, le cache JSON est faisant autorité et le fichier brut est une sauvegarde de durabilité. La vulnérabilité existe précisément parce qu'il y a des circonstances dans lesquelles le fichier brut est ré-analysé et utilisé pour régénérer le cache JSON, et que les deux formats ne sont pas d'accord sur la signification d'un caractère de nouvelle ligne intégré.


4. Cause racine : quatre défaillances indépendantes qui s'enchaînent

CVE-2026-41940 n'est pas une seule erreur. C'est le produit de quatre faiblesses distinctes, chacune plausible individuellement comme une décision de conception isolée, qui s'alignent pour produire un contournement d'authentification complet. Cette structure « gruyère » est instructive pour les défenseurs et les relecteurs de code bien au-delà de ce produit spécifique.

4.1 Couche 1 — Sanitisation imposée par convention, pas par le chemin d'écriture lui-même

Le sous-système de session de cPanel disposait déjà d'une routine de sanitisation chargée de supprimer les caractères dangereux — retours chariot, sauts de ligne et = — des valeurs de session avant leur persistance. Le problème est d'où cette routine était appelée : elle vivait à l'intérieur des fonctions wrapper de plus haut niveau (l'API de « création »/« modification » de session), et il était de la responsabilité de l'appelant de passer par ces wrappers plutôt que d'écrire directement les données de session.

Télécharger l’outil