
Proof-of-Concept-Exploit für einen Pre-Authentication-Pufferüberlauf in GNU InetUtils telnetd (CVE-2026-32746), einschließlich einer Docker-Lab-Umgebung und eines Erkennungsskripts für autorisierte Sicherheitstests.
Remote-Code-Ausführung vor der Authentifizierung durch Pufferüberlauf im LINEMODE SLC (Set Local Characters)-Handler des 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) an, ohne Grenzprüfung. Ein nicht authentifizierter Angreifer kann während der Optionsaushandlung – vor jeder Login-Aufforderung – eine manipulierte SLC-Suboption mit 40+ Tripletts (Funktionscodes > 18/NSLC) senden, den Puffer überlaufen lassen, den slcptr-Zeiger im BSS korrumpieren und einen beliebigen Schreibzugriff erreichen, wenn end_slc() den korrumpierten Zeiger verwendet.
# Die verwundbare Laborumgebung erstellen
docker compose up -d
# Erkennung (nicht destruktiv)
python3 detect.py 127.0.0.1 2323
# Exploit (stürzt telnetd ab – bestätigt die Schwachstelle)
python3 exploit.py 127.0.0.1 2323
# Aufräumen
docker compose down
Das Docker-Setup führt einen Debian-Container mit inetutils-telnetd 2.4 unter xinetd aus, der auf Port 2323 freigegeben ist. Vollständig isoliert – nichts berührt Ihren Host.
WILL LINEMODE, um die LINEMODE-Aushandlung auszulösenDO LINEMODE und beginnt mit der Verarbeitung der SLC-Suboptionadd_slc() stellt für jedes Triplett eine „nicht unterstützt“-Antwort (3 Bytes) in einen 104-Byte-Pufferslcptr sowie angrenzende BSS-Datenend_slc() schreibt das Suboptions-Endemarkierung über den korrumpierten slcptr (beliebiger Schreibzugriff)| Datei | Beschreibung |
|---|---|
exploit.py | PoC-Crash/DoS-Exploit |
Dockerfile | Verwundbares telnetd-Labor |
docker-compose.yml | Labor-Setup mit einem Befehl |
xinetd-telnet.conf | xinetd-Dienstkonfiguration |
detect.py | Nicht destruktives Versionserkennungsskript |
Um über DoS hinauszugehen, müssten Sie:
slcbuf → slcptr-Offset)end_slc() über den korrumpierten slcptr schreibtDieses Tool wird ausschließlich für autorisierte Sicherheitstests und Bildungszwecke bereitgestellt. Verwenden Sie es nicht gegen Systeme, die Sie nicht besitzen oder für die Sie keine ausdrückliche Testberechtigung haben. Der Autor ist nicht für Missbrauch verantwortlich.
MIT