PT-2026-115115 · Git+1 · Bandit
CVSS v4.0
6.9
متوسطة
| المتجه | AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N |
اسم البرنامج المصاب والإصدارات المتأثرة
bandit الإصدارات من 0.6.0 إلى 1.12.x
الوصف
يمكن لمهاجم عن بُعد غير مصرح له تعيين
conn.host و conn.port بقيم تخالف قواعد مضيف RFC 3986 من خلال سلطة هدف طلب HTTP/1 ذو النموذج المطلق أو نموذج السلطة. بينما يقوم البرنامج بالتحقق من صحة ترويسة Host ويرد بخطأ 400 عندما تكون مشوهة، فإن السلطة الموجودة في هدف الطلب لها الأولوية وفقًا لـ RFC 9112. وتقوم الدالة determine host and port!/4 في lib/bandit/pipeline.ex بتمرير هذه السلطة إلى التطبيق دون فحص.يسمح هذا بإدخال بايتات NUL و DEL وبايتات غير ASCII، وعناوين IP غير صالحة، ومنافذ خارج النطاق 1..65535. التطبيقات التي تبني روابط URL مطلقة من
conn.host ، مثل تلك التي تستخدم Plug.Conn.request url/1 أو مساعدات URL الخاصة بـ Phoenix، قد تصدر روابط تتحكم السلطة فيها بواسطة المهاجم. بالنسبة لطلبات CONNECT ، يتم وضع سلسلة المنفذ غير المحللة في conn.port ، مما قد يؤدي إلى حدوث خطأ في Plug.Conn.request url/1 لأن Plug.Conn.port number/0 يتوقع عددًا صحيحًا.التوصيات
تحديث bandit إلى الإصدار 1.13.0 أو أحدث.
كإجراء مؤقت، قم بإضافة plug قبل أي كود يقرأ
conn.host أو conn.port لمقارنة conn.host بقائمة مسموح بها من أسماء المضيفين التي يخدمها التطبيق، والتحقق من أن conn.port عدد صحيح، وإيقاف الطلب باستجابة 400 خلاف ذلك. تجنب اشتقاق روابط URL مطلقة من conn.host حتى يتم اجتياز هذا الفحص.إصلاح
وجدت خطأً في الوصف؟ لديك ما تضيفه؟ لا تتردد في مراسلتنا 👾
تصنيف نقاط الضعف
المعرّفات ذات الصلة
المنتجات المتأثرة
Bandit