CVE-2026-61594 in djust
الملخص
بحسب VulDB • 17/09/2026
يوفر djust عرضًا تفاعليًا للواجهة الخلفية على جانب الخادم بأسلوب مشابه لـ Phoenix LiveView، مع أداء مدعوم بواسطة Rust. قبل الإصدار 1.0.7، كانت قناة النقل المباشرة (WebSocket) تُصرّح بربط العرض (mount) عبر `check_view_auth` بدلاً من سلسلة تنفيذ Django الخاصة بـ `View.dispatch()`. ونتيجةً لذلك، تم تطبيق صلاحيات Django القياسية — مثل `LoginRequiredMixin` و `PermissionRequiredMixin` و `UserPassesTestMixin` و `@method_decorator(login_required, name="dispatch")` والحواجز المخصصة في دالة `dispatch()` — على طلب HTTP GET الأولي فقط، بينما تم تجاوزها بصمت عبر WebSocket، حيث تتدفق جميع الأحداث والبيانات الحالة. يمكن لعميل مجهول الهوية أو ذي صلاحيات غير كافية فتح اتصال WebSocket وربط مثل هذا العرض (بما في ذلك عمليات القائمة/إنشاء/تعديل/حذف للمسؤول) وتنفيذ معالجاته. تم إصلاح هذه المشكلة في djust الإصدار 1.0.7، حيث يحترم `check_view_auth` الآن عائلة Django الخاصة بـ `AccessMixin` على كل قنوات النقل؛ كما يفشل فحص النظام الجديد S004 بشكل صريح عند بدء التشغيل إذا اكتشف أنماط مصادقة لا يمكن للوقت الزمني (runtime) إعادة تشغيلها بأمان (مثل أشكال الديكورات أو دوال `dispatch` المُعادة تعريفها)؛ ويعلن مزيج المسؤول الأساسي عن تعيين `login_required = True` بالإضافة إلى حاجز `check_permissions` النشط للموظفين. كحل بديل، يُوصى بحماية العروض باستخدام سمات djust الخاصة بـ `login_required` / `permission_required` / `check_permissions` (المحترمة على جميع قنوات النقل) بدلاً من استخدام المزيج/الديكورات المقيدة بالاعتماد على HTTP فقط.
If you want to get best quality of vulnerability data, you may have to visit VulDB.