
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 respuesta| 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 |
Para 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