
استغلال إثبات المفهوم لـ CVE-2026-32136: تجاوز المصادقة غير الموثّق في AdGuard Home عبر ترقية HTTP/2 بنص واضح (h2c). يوضح كيفية الوصول إلى نقاط نهاية الإدارة دون بيانات اعتماد.
تجاوز مصادقة غير موثّق في 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 |
خادم HTTP في internal/home/web.go يغلّف وسيط المصادقة خارج h2c.NewHandler. عندما يرسل العميل طلب HTTP/1.1 مع Upgrade: h2c إلى مسار عام (مثل /login.html)، يسمح له وسيط المصادقة بالمرور، ثم يختطف h2c.NewHandler اتصال TCP للتبديل إلى HTTP/2. يتم توجيه كل تدفق HTTP/2 يتبع على الاتصال المرقّى مباشرة إلى mux الداخلي — دون المرور عبر وسيط المصادقة. وبالتالي يمكن الوصول إلى أي نقطة نهاية إدارية /control/* دون مصادقة على نفس المقبس.
ينقل التصحيح وسيط المصادقة داخل المعالج المُمرَّر إلى h2c.NewHandler، بحيث تخضع إطارات HTTP/2 بعد الترقية بنص واضح لنفس فحص المصادقة كطلبات HTTP/1.1.
curl --http2-prior-knowledge لا يُطلق الخطأ — طبقة HTTP/1.1 في الخادم ترفض تمهيد HTTP/2 الخام برمز 401./control/login تُرجع أيضًا 101 Switching Protocols، لكن 404 (نقطة نهاية POST فقط) على التدفق 1 يسمّم التدفقات اللاحقة. استخدم مسارًا ثابتًا يُرجع 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.
| نقطة النهاية | الإرجاع |
|---|---|
/control/filtering/status | قائمة عوامل التصفية + user_rules |
/control/status | حالة الخادم، وواجهات الاستماع |
/control/clients | قائمة عملاء DHCP / DNS |
/control/dns_info | خوادم DNS العلوية |
/control/querylog | سجل استعلامات DNS (غالبًا يحتوي على أسماء مضيفات داخلية) |
قم بالترقية إلى AdGuard Home 0.107.73 أو أحدث.
يُقدَّم هذا المفهوم البرهاني (PoC) لأغراض تعليمية وبحثية دفاعية. لا تشغّله ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها.