CVE-2026-49473 in Authorization for Expressjs
الملخص
بحسب VulDB • 13/08/2026
@cedar-policy/authorization-for-expressjs هو مكون وسيط (middleware) مفتوح المصدر لـ Express.js يدمج تفويض Cedar في تطبيقات Express من خلال ربط طلبات HTTP بإجراءات Cedar وتقييم سياسات التفويض قبل السماح للطلبات بالاستمرار. تحتوي الإصدارات السابقة للإصدار 0.3.0 على مشكلة حيث، في ظل ظروف معينة، يقوم المكون الوسيط بمطابقة الطلبات الواردة مع تعيينات إجراءات Cedar باستخدام `req.originalUrl`، الذي يتضمن سلسلة الاستعلام (query string)، بينما تقوم Express بتوجيه الطلبات باستخدام مكون المسار فقط. يستخدم المكون الوسيط `req.originalUrl` لمطابقة الطلبات الواردة مع تعيينات إجراءات Cedar. في Express، يتضمن `req.originalUrl` سلسلة الاستعلام، بينما يعتمد مطابقة المسارات على مسار الرابط فقط. يؤدي هذا إلى وجود انحراف بين ما يسمح به تفويض Cedar وما تنفذه Express. عندما يعرف التطبيق إجراءات منفصلة لبادئات مسارات متداخلة ذات متطلبات تفويض مختلفة (على سبيل المثال، `GET /users` لعرض جميع المستخدمين مع وصول مخصص للمسؤولين فقط، و`GET /users/{id}` لاسترداد مستخدم واحد مع أي وصول لمستخدم مُصادق عليه)، يمكن للمُستخدِم إضافة سلسلة استعلام لتجاوز السياسة الأكثر تقييداً. يؤدي إرسال طلب `GET /users/?x=1` إلى مطابقة المكون الوسيط لـ `/users/{id}` (مع تعيين معلمة المعرف `id` إلى `?x=1`) وتقييم الإجراء الأقل تقييداً، بينما تقوم Express بتوجيه الطلب إلى معالج قائمة المستخدمين `/users`. يسمح هذا بالوصول غير المناسب إلى النقطة النهائية الأكثر تقييداً. تم معالجة هذه المشكلة في الإصدار 0.30. تتوفر بعض الحلول البديلة: تحقق من تنقية مسارات الطلبات الواردة قبل وصولها إلى مكون التفويض الوسيط. تأكد من أن التطبيقات لا تعتمد حصراً على المكون الوسيط للتفويض عند تعريف إجراءات متعددة لبادئات مسارات متداخلة ذات مستويات أذونات مختلفة.
If you want to get best quality of vulnerability data, you may have to visit VulDB.