
قالب كشف Nuclei لـ CVE-2026-41473، وهو ثغرة وصول غير مصادق عليه للقراءة/الكتابة عبر API في CyberPanel AI Scanner قبل الإصدار 2.4.4. يستخدم فحصين عبر HTTP لتأكيد غياب المصادقة.
| نقطة النهاية | الطريقة | الأثر |
|---|
/api/ai-scanner/list-api-keys | GET | تكشف أسماء مستخدمي الإدارة، وبادئات مفاتيح API، وأسماء النطاقات المستضافة، ومعرّفات الفحص |
/api/ai-scanner/callback | POST | تقبل كتابة اعتباطية لسجل الفحص دون مصادقة |
تقع كلتا النقطتين تحت بادئة عنوان /api/*، والتي يستثنيها secMiddleware في CyberPanel unconditionally من فحوصات مصادقة الجلسة. لا يلزم أي رمز مميز أو ملف تعريف ارتباط للجلسة أو أي نوع من بيانات الاعتماد للوصول إلى أي من النقطتين.
تتيح نقطة نهاية القراءة تعداد الأهداف. أما نقطة نهاية الكتابة فتمكّن من إفساد سجل الفحص، وعند ربطها بثغرة XSS المخزنة في لوحة معلومات AI Scanner (CVE-2026-41472)، تحقق تنفيذًا عشوائيًا للكود عن بُعد دون مصادقة عبر التلاعب بمهام cron.
CVSS 3.1: AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H — 9.8 حرجة
CWE: CWE-306 (غياب المصادقة لوظيفة حرجة)
أُصلحت في: CyberPanel 2.4.4 (الالتزام 8eb29181cb137baa4adb4bba5dce60f601d55a5f)
يرسل القالب طلبين:
الطلب 1 — GET /api/ai-scanner/list-api-keys
يؤكد أن الهدف هو مثيل CyberPanel مع تفعيل ميزة AI Scanner وأن نقطة نهاية القراءة غير محمية. يطابق بنية JSON (api_keys, recent_scans, is_payment_configured) مع استجابة HTTP 200. يستخرج أسماء مستخدمي الإدارة، وبادئات مفاتيح API، وأسماء النطاقات، ومعرّفات الفحص كمخرجات مسماة.
الطلب 2 — POST /api/ai-scanner/callback بجسم فارغ {}
يختبر نقطة نهاية الكتابة دون تنفيذ أي كتابة فعلية. الجسم الفارغ يعني عدم وجود scan_id، وبالتالي لا يمكن للخادم مطابقة أو تعديل أي سجل ScanHistory موجود. على خادم ثغِر (< 2.4.4)، يُتجاوز فحص المصادقة ويعيد Django استجابة HTTP 400 مع scan_id في جسم الخطأ — أي أن الخادم وصل إلى التحقق من الإدخال دون فرض المصادقة إطلاقًا. أما على خادم مُصحَّح (≥ 2.4.4)، فيُفعَّل فحص ترويسة X-API-Key أولًا ويعيد HTTP 401 قبل قراءة scan_id إطلاقًا.
يتطلب المطابقة توفر كل مما يلي:
scan_id في جسم الاستجابة + نوع محتوى application/jsonيؤكد هذا الدمج أن منطق CyberPanel AI Scanner قد أُتيح في كلا الطلبين دون فرض أي مصادقة، مع استبعاد حجب جدار الحماية (WAF)، وأخطاء الوكيل العكسي، واستجابات 400 غير ذات الصلة.
nuclei -t cyberpanel-aisscanner-unauth-rw-cve-2026-41473.yaml -u https://target:8090
# ضد قائمة من الأهداف
nuclei -t cyberpanel-aisscanner-unauth-rw-cve-2026-41473.yaml -l targets.txt
| الإصدار | الحالة |
|---|---|
| CyberPanel < 2.4.4 مع AI Scanner | ثغِر |
| CyberPanel ≥ 2.4.4 | مُصحَّح |
| CyberPanel دون وحدة AI Scanner | غير متأثر |
لن تتطابق مثيلات CyberPanel التي لا تتضمن ميزة AI Scanner (عمومًا الإصدارات الأقدم من 2.3) — ستعيد نقطة النهاية list-api-keys استجابة 404 ولن يُفعَّل القالب.