
استغلال إعادة تعيين كلمة المرور دون مصادقة لـ 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!
صُمّم API إعادة تعيين كلمة المرور لإرسال tempToken إلى بريد المستخدم الإلكتروني، لكن الخادم أدرجه أيضًا مباشرةً في جسم استجابة JSON. وهذا يعني أن أي مُستدعٍ، مُصادَقًا كان أو غير مُصادَق، يتلقى الرمز فورًا عند إجراء الطلب، مما يجعل خطوة إرسال البريد الإلكتروني بلا جدوى.
بالإضافة إلى ذلك، فإن تعداد البريد الإلكتروني ممكن لأن نقطة نهاية تسجيل الدخول تُرجع رسالة خطأ مميزة ("Incorrect Email or Password") فقط عندما يكون البريد الإلكتروني موجودًا، مما يجعل تأكيد الحسابات الصالحة أمرًا سهلاً قبل شن الهجوم.
tempToken حصريًا عبر عنوان البريد الإلكتروني المسجّل.يُقدَّم إثبات المفهوم هذا لأغراض البحث الأمني التعليمي والمُصرَّح به فقط. يُعدّ استخدام هذا السكربت ضد أنظمة دون إذن كتابي صريح غير قانوني وغير أخلاقي. ولا يتحمل المؤلف والمساهمون أي مسؤولية عن إساءة الاستخدام.