
استغلال إعادة تعيين كلمة المرور دون مصادقة لـ Flowise AI ≤ 3.0.5. يستغل نقطة النهاية /api/v1/account/forgot-password لتغيير كلمة مرور أي مستخدم دون مصادقة مسبقة. يتضمن نصًا برمجيًا لإثبات المفهوم وإرشادات التخفيف.
معرّف CVE: CVE-2025-58434
البرنامج المتأثر: Flowise AI
الإصدارات المتأثرة: <= 3.0.5
الإصدار المُصلَّح: 3.0.6 وما بعده
الخطورة: حرجة
المؤلف: arensballiu
التاريخ: 2025
تحتوي إصدارات Flowise AI حتى الإصدار 3.0.5 ضمناً على خلل في المصادقة ضمن تدفق إعادة تعيين كلمة المرور. تُرجع نقطة النهاية /api/v1/account/forgot-password رمز إعادة تعيين مؤقت (tempToken) مباشرةً في استجابة الـ API دون اشتراط أي شكل من أشكال المصادقة المسبقة أو التحقق عبر البريد الإلكتروني.
يمكن للمهاجم غير المُصادَق الذي يعرف (أو يستطيع تعداد) عنوان بريد إلكتروني صالح أن:
tempToken مباشرةً من استجابة الـ API.تتجاوز هذه الثغرة تدفق التحقق المعتمد على البريد الإلكتروني بالكامل، إذ يُسرَّب الرمز في استجابة HTTP بدلاً من إرساله فقط إلى صندوق بريد مالك الحساب.
| نقطة النهاية | الطريقة | الغرض |
|---|---|---|
/api/v1/auth/login | POST | يُستخدم للتحقق من وجود حساب بريد إلكتروني |
/api/v1/account/forgot-password | POST | يُطلق إعادة التعيين ويُسرّب tempToken في الاستجابة |
/api/v1/account/reset-password | POST | يُكمل تغيير كلمة المرور باستخدام الرمز |
الملف: CVE-2025-58434_POC.py
requestspip install requests
python3 CVE-2025-58434_POC.py -e <target_email> -u <target_url> [-p <new_password>]
| العلامة | الصيغة الطويلة | مطلوب | الوصف |
|---|---|---|---|
-e | --email | نعم | عنوان البريد الإلكتروني للحساب المستهدف |
-u | --url | نعم | عنوان URL الأساسي لنسخة Flowise |
-p | --password | لا | كلمة المرور الجديدة المراد تعيينها (القيمة الافتراضية password) |
python3 CVE-2025-58434_POC.py -e [email protected] -u https://flowise.example.com -p P@ssw0rd!
[+] Email [email protected] exists!
[!] Sending forgot password request
[!] Sending reset password request
[+] Password Changed Successfully to: P@ssw0rd!
صُمِّم واجهة إعادة تعيين كلمة المرور لإرسال tempToken إلى بريد المستخدم الإلكتروني، لكن الخادم أدرجه أيضاً مباشرةً في جسم استجابة JSON. وهذا يعني أن أي مُستدعٍ — مُصادَق أو غير مُصادَق — يتلقى الرمز فوراً عند إجراء الطلب، مما يجعل خطوة إرسال البريد الإلكتروني بلا جدوى.
بالإضافة إلى ذلك، فإن تعداد البريد الإلكتروني ممكن لأن نقطة نهاية تسجيل الدخول تُرجع رسالة خطأ مميزة ("Incorrect Email or Password") فقط عندما يكون البريد الإلكتروني موجوداً، مما يجعل تأكيد الحسابات الصالحة أمراً تافهاً قبل شن الهجوم.
tempToken حصرياً عبر عنوان البريد الإلكتروني المسجَّل.يُقدَّم إثبات المفهوم هذا لأغراض تعليمية وبحث أمني مُصرَّح به فقط. يُعد استخدام هذا السكربت ضد أنظمة دون إذن كتابي صريح أمراً غير قانوني وغير أخلاقي. لا يتحمل المؤلف والمساهمون أي مسؤولية عن إساءة الاستخدام.