
CVE-2026-32746 - GNU InetUtils telnetd LINEMODE SLC Buffer Overflow PoC (pre-auth RCE, CVSS 9.8)
Pufferüberlauf vor der Authentifizierung im LINEMODE SLC (Set Local Characters) Handler von GNU InetUtils telnetd.
CVSS 3.1: 9.8 (Kritisch) | CWE: CWE-120, CWE-787
Die Funktion add_slc() in telnetd/slc.c hängt 3 Bytes pro SLC-Triplett an einen festen 108-Byte-Puffer (slcbuf) ohne Grenzprüfung an. Ein nicht authentifizierter Angreifer kann eine manipulierte SLC-Suboption mit 40+ Tripletts (Funktionscodes > 18/NSLC) während der Optionsaushandlung – vor der Anmeldeaufforderung – senden, den Puffer überlaufen lassen und den slcptr-Zeiger sowie angrenzende Daten im BSS-Bereich korrumpieren.
# 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
Das Docker-Setup betreibt einen Debian-Container mit inetutils-telnetd 2.4 unter xinetd, bereitgestellt auf Port 2323. Vollständig isoliert – nichts berührt Ihren Host.
WILL LINEMODE, um die LINEMODE-Aushandlung auszulösenDO LINEMODE und tritt in die SLC-Suboptionsverarbeitung einadd_slc() stellt für jedes Triplett eine „nicht unterstützt“-Antwort (3 Bytes) in einen 104-Byte-Pufferslcptr sowie angrenzende BSS-Datenend_slc() sendet alles von slcbuf bis zur korrumpierten slcptr-Position, einschließlich durchgesickerter BSS-Speicher in der AntwortFür eine tiefgehende Exploit-Analyse einschließlich Byte-Einschränkungen, Ausrichtungstechniken und der def_slcbuf/free()-Primitive auf 32-Bit-Systemen siehe WatchTowrs Artikel.
Dieses Tool wird ausschließlich für autorisierte Sicherheitstests und zu Bildungszwecken bereitgestellt. Verwenden Sie es nicht gegen Systeme, die Sie nicht besitzen oder für die Sie keine ausdrückliche Genehmigung zum Testen haben. Der Autor übernimmt keine Verantwortung für Missbrauch.
Schwachstelle entdeckt von: Adiel Sol, Arad Inbar, Erez Cohen, Nir Somech, Ben Grinberg, Daniel Lubel (DREAM Security Research Team)
MIT
| Datei | Beschreibung |
|---|
exploit.py | PoC-Überlauf mit antwortbasierter Verifikation |
Dockerfile | Angreifbares telnetd-Labor |
docker-compose.yml | Labor-Setup mit einem Befehl |
xinetd-telnet.conf | xinetd-Dienstkonfiguration |
detect.py | Nicht-destruktives Versionserkennungsskript |