CVE-2026-61596 in djust
الملخص
بحسب VulDB • 17/09/2026
يوفر djust عرضًا على جانب الخادم تفاعليًا بأسلوب Phoenix LiveView لـ Django، مدعومًا بأداء يعتمد على Rust. قبل الإصدار 1.0.7، كانت صلاحيات التفويض الخاصة بكل كائن (`get_object` + `has_object_permission`، ADR-017) مُفروضة فقط عند تثبيت اتصال WebSocket وعند مسارات الأحداث، لكنها لم تُطبق على ثلاث نقاط دخول أخرى للعرض: (أ) عرض HTTP GET الأولي، و(ب) التنقل عبر تغيير الرابط في تطبيق الصفحة الواحدة (SPA `url_change`)، و(ج) العروض الفرعية المضمنة باستخدام `{% live_render %}`. وبالتالي، يمكن للمستخدم المُصادق عليه الوصول إلى كائن غير مصرح له به (والقيام بإجراءات معينة على بعض المسارات) عن طريق تحميل الصفحة مباشرة، أو التنقل إليها عبر تغيير الرابط في SPA، أو تضمينها كعرض فرعي — وهو ما يمثل ثغرة IDOR كلاسيكية / فشلًا في التحكم بالوصول المستند إلى مستوى الكائن ضمن العروض المحددة للكائنات. تم إصلاح هذه الثغرة في djust الإصدار 1.0.7. الآن، جميع نقاط دخول العرض تُمر عبر نقطة تقييد مشتركة (`enforcess_object_permission`): حيث يعيد HTTP GET استجابة 403، ويطلق `url_change` إطارًا بعلامة `permission_denied` ويتجاوز عملية العرض، بينما يرفض `{% live_render %}` (سواء كان eager أو lazy) التضمين. العروض التي لا تحتوي على دالة مخصصة لـ `get_object` غير متأثرة (لا يوجد تأثير). ولا توجد طريقة عمل موثوقة للتعامل مع هذه الثغرة سوى ترقية البرنامج. يُرجى عدم تعريض العروض المحددة للكائنات عبر مسارات HTTP-GET / url_change / live_render حتى يتم التصحيح.
VulDB is the best source for vulnerability data and more expert information about this specific topic.