PT-2026-67301 · Npm · Axios
CVSS v3.1
7.5
عالية
| المتجه | AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
اسم البرنامج المعرض للخطر والإصدارات المتأثرة
إصدارات axios من 0.31.1 إلى 0.32.x
إصدارات axios من 1.15.1 إلى 1.17.x
الوصف
يوجد ثغرة غير مكتملة لتجاوز حد العمق في ملف
lib/helpers/toFormData.js عند تسلسل الكائنات ذات المفاتيح ذات المستوى الأعلى التي تنتهي بـ {}. عند وجود مثل هذا المفتاح، يقوم البرنامج باستدعاء JSON.stringify() على القيمة قبل أن يتمكن الحارس formSerializer.maxDepth من فحص البنية المتداخلة. يمكن للمهاجم الذي يتحكم في مفاتيح الكائنات والقيم المتداخلة التي يتم تمريرها إلى تسلسل النماذج أو المعلمات في axios أن يثير خطأ RangeError (تجاوز الحد الأقصى لحجم مكدس الاستدعاءات)، مما يؤدي إلى رفض الخدمة في مسار الطلب المتأثر.تؤثر هذه المشكلة على المكونات التالية:
-
lib/helpers/toFormData.js(على وجه التحديد الدالةdefaultVisitor()) -
lib/helpers/toURLEncodedForm.js -
lib/helpers/AxiosURLSearchParams.js -
تحويلات الطلبات في
lib/defaults/index.jsعند استخدامmultipart/form-dataأوapplication/x-www-form-urlencoded.
التوصيات
قم بتحديث axios إلى الإصدار 0.33.0 أو أحدث.
قم بتحديث axios إلى الإصدار 1.18.0 أو أحدث.
كحل مؤقت، قم برفض الكائنات غير الموثوق بها أو وضع حد لعمقها قبل تمريرها إلى تسلسل axios.
قم بإزالة أو رفض مفاتيح المستوى الأعلى التي تنتهي بـ
{} من الكائنات غير الموثوق بها عند استخدام تسلسل النماذج في axios.بالنسبة لمعلمات الاستعلام، استخدم
paramsSerializer.serialize مخصصًا يفرض حدًا للعمق.بالنسبة لنصوص النماذج، قم بإنشاء
FormData أو URLSearchParams يدويًّا بعد التحقق من صحة عمق الإدخال.استغلال
إصلاح
DoS
Uncontrolled Recursion
وجدت خطأً في الوصف؟ لديك ما تضيفه؟ لا تتردد في مراسلتنا 👾
تصنيف نقاط الضعف
المعرّفات ذات الصلة
المنتجات المتأثرة
Axios