CVE-2023-30861
Flask معرّضة لكشف محتمل لكوكي الجلسة الدائمة بسبب عدم وجود ترويسة Vary: Cookie
- تم النشر
- 02/05/2023
- محدث
- 13/02/2025
- تخصيص CNA
- GitHub_M
- الأدلة المرصودة
- 08/08/2026
CVSS الأساسي
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:Nمنخفض · الثلاثين يومًا القادمة
- المئوية
- 67.8%
- تاريخ الموديل
- 21/09/2026
EPSS هو تقدير إحصائي، وليس يقينًا أو مقياسًا للتأثير. ادمجها مع CVSS وحالة KEV والتعرض وبيئتك.
ملخص
Flask هو إطار عمل لتطبيقات الويب خفيف الوزن يعمل بواجهة WSGI. عندما تتوفر جميع الشروط التالية، قد يتم تخزين استجابة تحتوي على بيانات مخصصة لعميل واحد مؤقتًا، ثم يرسلها البروكسي لاحقًا إلى عملاء آخرين. إذا كان البروكسي يخزّن أيضًا ترويسات `Set-Cookie` مؤقتًا، فقد يرسل ملف تعريف ارتباط `session` الخاص بأحد العملاء إلى عملاء آخرين. تعتمد خطورة الثغرة على استخدام التطبيق للجلسة وسلوك البروكسي فيما يتعلق بملفات تعريف الارتباط. ويعتمد الخطر على تحقق جميع هذه الشروط. 1. يجب استضافة التطبيق خلف بروكسي تخزين مؤقت لا يزيل ملفات تعريف الارتباط ولا يتجاهل الاستجابات التي تحتوي عليها. 2. يضبط التطبيق `session.permanent = True`. 3. لا يصل التطبيق إلى الجلسة أو يعدّلها في أي نقطة أثناء الطلب. 4. تفعيل `SESSION_REFRESH_EACH_REQUEST` (وهو الإعداد الافتراضي). 5. لا يضبط التطبيق ترويسة `Cache-Control` للإشارة إلى أن الصفحة خاصة أو لا ينبغي تخزينها مؤقتًا. يحدث هذا لأن الإصدارات المعرضة للخطر من Flask تضبط ترويسة `Vary: Cookie` فقط عند الوصول إلى الجلسة أو تعديلها، وليس عند تحديثها (إعادة إرسالها لتحديث انتهاء الصلاحية) دون الوصول إليها أو تعديلها. تم إصلاح هذه المشكلة في الإصدارين 2.3.2 و2.2.5.
المصادر
1PoC قائم على Docker لثغرة Flask CVE-2023-30861، مما يوضح ثغرة معالجة الجلسة بين Flask وخوادم ذاكرة التخزين المؤقت للوكيل العكسي للبحث والاختبار الأمني.
الاستخدام المسؤول
استخدم معلومات الثغرات الأمنية فقط على الأنظمة التي تمتلكها أو المرخص لها باختبارها. يرتبط Kitploit ببيانات تعريف البحث العامة ولا يخزن أكواد الاستغلال أو الحمولات الضارة.