An issue was discovered in 6.0 before 6.0.5 and 5.2 before 5.2.14.
Response headers do not vary on cookies if a session is not modified, but `SESSION_SAVE_EVERY_REQUEST` is `True`. A remote attacker can steal a user's session after that user visits a cached public page.
Earlier, unsupported Django series (such as 5.0.x, 4.1.x, and 3.2.x) were not evaluated and may also be affected.
Django would like to thank Cantina for reporting this issue.
Django versions before 6.0.5 and 5.2.14 fail to vary response headers on cookies when SESSION_SAVE_EVERY_REQUEST is enabled, allowing attackers to steal user sessions through cached public pages. This vulnerability affects multiple Django series and requires immediate patching for organizations using affected versions.
تحتوي إصدارات Django 6.0 قبل 6.0.5 و 5.2 قبل 5.2.14 على ثغرة في معالجة رؤوس الاستجابة حيث لا تتغير رؤوس التخزين المؤقت بناءً على ملفات تعريف الارتباط عند تفعيل SESSION_SAVE_EVERY_REQUEST. يمكن للمهاجمين استغلال هذا لسرقة جلسات المستخدمين من خلال الوصول إلى نسخ مخزنة مؤقتاً من الصفحات العامة.
إصدارات Django قبل 6.0.5 و 5.2.14 تفشل في تغيير رؤوس الاستجابة على ملفات تعريف الارتباط عند تفعيل SESSION_SAVE_EVERY_REQUEST، مما يسمح للمهاجمين بسرقة جلسات المستخدم من خلال الصفحات العامة المخزنة مؤقتاً. تؤثر هذه الثغرة على سلاسل Django متعددة وتتطلب تصحيحاً فورياً.
Upgrade Django to version 6.0.5 or later for 6.0.x series, version 5.2.14 or later for 5.2.x series, and verify unsupported series (5.0.x, 4.1.x, 3.2.x) for patches. Review SESSION_SAVE_EVERY_REQUEST configuration and implement proper cache control headers. Conduct security audit of session management implementation.
قم بترقية Django إلى الإصدار 6.0.5 أو أحدث لسلسلة 6.0.x، والإصدار 5.2.14 أو أحدث لسلسلة 5.2.x، والتحقق من السلاسل غير المدعومة (5.0.x، 4.1.x، 3.2.x) للحصول على التصحيحات. راجع إعدادات SESSION_SAVE_EVERY_REQUEST وطبق رؤوس التحكم في ذاكرة التخزين المؤقت بشكل صحيح. أجرِ تدقيقاً أمنياً لتطبيق إدارة الجلسات.