
Un exploit PoC para CVE-2026-24061 - GNU InetUtils telnetd Argument Injection Authentication Bypass
Las versiones 1.9.3 a 2.7 de GNU InetUtils son vulnerables a un bypass de autenticación remota en el servidor telnetd. El demonio telnetd no sanea adecuadamente la variable de entorno USER antes de pasarla como argumento de línea de comandos al programa login(1). Cuando un cliente telnet envía una variable de entorno USER que contiene parámetros de línea de comandos (como -f root), telnetd pasa directamente este valor sin sanear al programa login. La utilidad login interpreta el parámetro -f como una instrucción para omitir la autenticación, lo que permite a un atacante obtener acceso root no autorizado sin proporcionar ninguna credencial.
Implementación completa del protocolo Telnet
DO, DONT, WILL y WONT.Inyección automática de payload
ENVIRON manipulado con la inyección USER=-f root.Shell interactivo
Gestión de conexiones
Depuración verbosa
python3 exploit.py <target> -p <port> [options]
| Argumento | Descripción |
|---|---|
target | Dirección IP o nombre de host del objetivo |
python3 exploit.py 192.168.1.100
python3 exploit.py 192.168.1.100 -p 2323 -v
python3 exploit.py 10.0.0.5 -p 2323 -k 60 -t 10
Establecimiento de la conexión
Negociación de protocolo
SGA, ECHO y ENVIRON).Entrega del payload
WILL ENVIRON seguido del payload de subnegociación manipulado.Bypass de autenticación
-f root se inyecta en login(1) para omitir las comprobaciones de credenciales.Sesión interactiva
El exploit aprovecha la opción Telnet ENVIRON (RFC 1572) para inyectar argumentos de línea de comandos en la variable de entorno USER.
Cuando telnetd pasa este valor sin sanear a login -f root, el programa login interpreta -f como un parámetro que fuerza el bypass de autenticación, otorgando acceso root sin verificación de contraseña.
El script del exploit implementa:
WILL, WONT, DO, DONT)NOP de keepalive para mantener la estabilidad de la sesión$ python3 exploit.py 127.0.0.1 -p 2323
[!] Coded By: K3ysTr0K3R
[*] Telnet Authentication Bypass
[*] Connecting to 127.0.0.1:2323
[+] Connection established
[+] Exploit payload sent (19 bytes)
# id
uid=0(root) gid=0(root) groups=0(root)
# whoami
root
#
Los administradores de sistemas pueden detectar intentos de explotación supervisando:
ENVIRON.USER que contengan -f u otros parámetros de línea de comandos.Actualice a la versión 2.8 de GNU InetUtils o aplique el parche de seguridad oficial que sanea las variables de entorno antes de pasarlas a login(1).
Esta prueba de concepto está destinada únicamente a la investigación de seguridad, la validación de vulnerabilidades y los entornos de pruebas autorizados. Úsela solo contra sistemas para los que tenga permiso explícito para realizar evaluaciones de seguridad.
| Opción | Descripción |
|---|
-p, --port | Puerto objetivo (por defecto: 23) |
-v, --verbose | Habilita la salida de depuración verbosa |
-t, --timeout | Tiempo de espera de conexión en segundos (por defecto: 5) |
-k, --keepalive | Intervalo de keepalive en segundos (por defecto: 30) |
-h, --help | Muestra el mensaje de ayuda |