
CVE-2026-32746 - PoC de desbordamiento de búfer SLC LINEMODE en telnetd de GNU InetUtils (RCE pre-autenticación, CVSS 9.8)
Desbordamiento de búfer previo a la autenticación en el manejador LINEMODE SLC (Set Local Characters) de telnetd de GNU InetUtils.
CVSS 3.1: 9.8 (Crítico) | CWE: CWE-120, CWE-787
La función add_slc() en telnetd/slc.c añade 3 bytes por cada triplete SLC a un búfer fijo de 108 bytes (slcbuf) sin comprobación de límites. Un atacante no autenticado puede enviar una subopción SLC manipulada con 40+ tripletes (códigos de función > 18/NSLC) durante la negociación de opciones, antes de cualquier indicador de inicio de sesión, desbordando el búfer y corrompiendo el puntero slcptr y los datos adyacentes en BSS.
# Build the vulnerable lab environment
docker compose up -d
# Detect (non-destructive)
python3 detect.py 127.0.0.1 2323
# Exploit (triggers overflow, verifies via response)
python3 exploit.py 127.0.0.1 2323
# Clean up
docker compose down
El entorno Docker ejecuta un contenedor Debian con inetutils-telnetd 2.4 bajo xinetd, expuesto en el puerto 2323. Totalmente aislado: nada toca tu host.
WILL LINEMODE para desencadenar la negociación de LINEMODEDO LINEMODE y entra en el procesamiento de subopciones SLCadd_slc() pone en cola una respuesta "no soportado" (3 bytes) para cada triplete en un búfer de 104 bytesslcptr y los datos BSS adyacentesend_slc() envía todo desde slcbuf hasta la posición corrupta de slcptr, incluida la memoria BSS filtrada en la respuestaPara un análisis profundo de la explotación, incluidos los límites de bytes, técnicas de alineación y la primitiva def_slcbuf/free() en sistemas de 32 bits, consulta el artículo de WatchTowr.
Esta herramienta se proporciona únicamente para pruebas de seguridad autorizadas y fines educativos. No la utilices contra sistemas que no poseas o para los que no tengas permiso explícito de pruebas. El autor no es responsable del mal uso.
Vulnerabilidad descubierta por: Adiel Sol, Arad Inbar, Erez Cohen, Nir Somech, Ben Grinberg, Daniel Lubel (DREAM Security Research Team)
MIT
| Archivo | Descripción |
|---|
exploit.py | Desbordamiento PoC con verificación basada en la respuesta |
Dockerfile | Laboratorio telnetd vulnerable |
docker-compose.yml | Configuración del laboratorio con un solo comando |
xinetd-telnet.conf | Configuración del servicio xinetd |
detect.py | Script no destructivo de detección de versiones |