CVE-2026-61599 in djustالمعلومات

الملخص

بحسب VulDB • 17/09/2026

يوفر djust عرضًا للواجهة الخلفية على جانب الخادم تفاعليًا بأسلوب Phoenix LiveView، مدعومًا بأداء يعتمد على Rust. قبل الإصدار 1.0.7، تقوم عملية النقل الحية (live transport) في djust بحل الـ LiveView المراد تثبيته من مسار نقطتي توفره العميل عن طريق استدعاء `__import__(module_path, ...)`. يتم استيراد الوحدة النمطية — مما يؤدي إلى تشغيل الكود على المستوى العلوي لها (آثار جانبية للاستيراد) — قبل أن يتحقق الإطار البرمجي من أن الكائن المحلّل هو فئة فرعية لـ `LiveView`، وقبل أي مصادقة خاصة بكل عرض. قائمة السماح (`LIVEVIEW_ALLOWED_MODULES`) التي يفترض أن تحتوي عليها هي مفتوحة للفشل (fail-open؛ حيث يتم تخطي الشرط `if allowed_modules:` عند عدم ضبط الإعدادات، وهو الوضع الافتراضي للإطار)، وتستخدم مطابقة فضفاضة تعتمد على بادئة النص (`startswith`). وبالتالي، يمكن لعميل WebSocket غير مصدق عليه (حيث لا تتطلب مبادلة بروتوكول WS المصادقة؛ فالمصادقة الخاصة بكل عرض تعمل فقط بعد الاستيراد والتثبيت) إرسال إطار `mount` / `live_redirect_mount` / `url_change` (أو إطار تثبيت عبر SSE) مع تحديد `view = "<any.importable.module>.AnyName"`، مما يتسبب في قيام الخادم باستيراد — وتنفيذ الكود على المستوى العلوي لـ — أي وحدة بايثون قابلة للاستيراد باسمها. يصحّح الإصدار 1.0.7 هذه المشكلة من خلال بوابة حل مغلقة للفشل (fail-closed) (`djust._view_resolution.is_view_import_allowed`): لا يتم حل مسار عرض العميل إلا إذا كان (أ) الوحدة النمطية الخاصة به محملة مسبقًا في `sys.modules` — وبالتالي فإن عملية الحل لا تشغّل أي كود جديد؛ وتظل العروض الموجهة عبر عناوين URL والمحملة بواسطة ملف تكوين URLs عند بدء التشغيل تعمل بدون إعدادات إضافية، أو (ب) تطابق قائمة `LIVEVIEW_ALLOWED_MODULES` على حدود مقطع الوحدة النمطية (اختيار صريح صراحةً للعروض التي يتم استيرادها بشكل كسول). تعمل البوابة قبل استدعاء `__import__` في جميع نقاط النهاية الثلاث (+ دفاع متعدد الطبقات داخل `_instantiate_view`). كحل بديل، اضبط `LIVEVIEW_ALLOWED_MODULES` لتكون القائمة الضيقة للوحدات النمطية التي تحتوي على فئات LiveView القابلة للتثبيت. (ملاحظة: قائمة السماح قبل التصحيح تُطابق باستخدام بادئة النص (`startswith`) ولا يزال الاستيراد يسبق فحص الفئة الفرعية، لذا فإن هذا إجراء تخفيف وليس إصلاحًا كاملًا).

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

مسؤول

GitHub M

حجز

10/07/2026

إفشاء

17/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-406267

EPSS

0.00000

KEV

لا

النشاطات

منخفض

المصادر

Want to stay up to date on a daily basis?

Enable the mail alert feature now!