
AdGuard Home
< 0.107.73में HTTP/2 क्लियरटेक्स्ट (h2c) उन्नयन के माध्यम से बिना प्रमाणीकरण के प्रमाणीकरण बाईपास।
| CVE | CVE-2026-32136 |
| CVSS | 9.8 (गंभीर) — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CWE | CWE-287 (अनुचित प्रमाणीकरण) |
| प्रभावित | AdGuard Home < 0.107.73 (PoC का परीक्षण v0.107.72 पर किया गया) |
| पैच किया गया | v0.107.73 (commit c003e9f9c0) |
| परामर्श | GHSA-5fg6-wrq4-w5gh |
internal/home/web.go में HTTP सर्वर auth मिडलवेयर को h2c.NewHandler के बाहर लपेटता है। जब कोई क्लाइंट किसी सार्वजनिक पथ (जैसे /login.html) पर Upgrade: h2c के साथ HTTP/1.1 अनुरोध भेजता है, तो auth मिडलवेयर उसे गुजरने देता है और h2c.NewHandler HTTP/2 पर स्विच करने के लिए TCP कनेक्शन को हाइजैक कर लेता है। उन्नत कनेक्शन पर आने वाली हर HTTP/2 स्ट्रीम सीधे आंतरिक mux को भेज दी जाती है — बिना कभी auth मिडलवेयर से गुजरे। इस प्रकार किसी भी /control/* एडमिन एंडपॉइंट तक उसी सॉकेट पर बिना प्रमाणीकरण के पहुँचा जा सकता है।
पैच auth मिडलवेयर को h2c.NewHandler को दिए गए हैंडलर के अंदर ले जाता है, ताकि क्लियरटेक्स्ट उन्नयन के बाद HTTP/2 फ्रेम भी HTTP/1.1 अनुरोधों के समान auth जाँच से गुजरें।
curl --http2-prior-knowledge बग को ट्रिगर नहीं करता — सर्वर की HTTP/1.1 परत कच्चे HTTP/2 preface को 401 के साथ अस्वीकार कर देती है।/control/login पर उन्नयन भी 101 Switching Protocols लौटाता है, लेकिन स्ट्रीम 1 पर 404 (केवल-POST एंडपॉइंट) बाद की स्ट्रीम को दूषित कर देता है। ऐसा स्टैटिक पथ उपयोग करें जो 200 OK लौटाता है (जैसे /login.html)।# Kali / Debian / Ubuntu
sudo apt install -y python3-h2
python3 CVE-2026-32136.py <target-ip> [port] [path]
डिफ़ॉल्ट: port=80, path=/control/filtering/status।
$ python3 CVE-2026-32136.py 192.168.1.5 80 /control/filtering/status | jq .user_rules
[+] h2c upgrade successful — connection is now HTTP/2
[+] response status: 200
[
"||tracking.corp.example^",
"||analytics.internal.example^",
...
]
stdout कच्चा प्रतिक्रिया बॉडी है; स्थिति संदेश stderr पर लिखे जाते हैं ताकि आउटपुट jq में साफ-साफ पाइप हो सके।
AdGuard Home 0.107.73 या उसके बाद के संस्करण में अपग्रेड करें।
यह proof-of-concept शैक्षिक और रक्षात्मक अनुसंधान उद्देश्यों के लिए प्रकाशित किया गया है। इसे उन सिस्टमों पर न चलाएँ जिनके स्वामी आप नहीं हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट प्राधिकरण नहीं है।
| एंडपॉइंट | परिणाम |
|---|
/control/filtering/status | फ़िल्टर सूची + user_rules |
/control/status | सर्वर स्थिति, सुनने वाले इंटरफ़ेस |
/control/clients | DHCP / DNS क्लाइंट सूची |
/control/dns_info | अपस्ट्रीम DNS सर्वर |
/control/querylog | DNS क्वेरी लॉग (अक्सर आंतरिक होस्टनाम होते हैं) |