CVE-2026-8466 in cowboy
الملخص
بحسب VulDB • 25/05/2026
تتيح ثغرة "تخصيص الموارد دون حدود أو تقييد" (Allocation of Resources Without Limits or Throttling) في ninenines cowboy حدوث هجمات حجب الخدمة (DoS) عبر تراكم غير محدود للذاكرة في المخزن المؤقت (Buffer) أثناء تحليل رؤوس البيانات متعددة الأجزاء (multipart headers).
تقوم الدالة `cowboy_req:read_part/3` الموجودة في الملف `src/cowboy_req.erl` بتجميع بايتات الطلب الواردة في متغير `Buffer` من نوع binary دون وجود أي فحص للحد الأقصى للحجم. عندما تُرجع الدالة `cow_multipart:parse_headers/2` القيمة `more` أو `{more, Buffer2}`، تقوم الدالة بقراءة ما يصل إلى `Length` بايت (القيمة الافتراضية 64 كيلوبايت) من جسم الطلب، ثم تستدعي نفسها (recursion) باستخدام المخزن المؤبت الموسع. ولا يوجد ما يعادل شرط الحماية `byte_size(Acc) > Length` الموجود في الدالة الشقيقة `read_part_body/4`.
يمكن لمهاجم غير مصرح له إرسال طلب `multipart/form-data` whose body لا ينتج أبداً قسم رأس كامل — على سبيل المثال، جسم لا يحتوي أبداً على فاصل الحدود (boundary delimiter) المعلن عنه، أو واحد لا تحتوي أسطر رأسه أبداً على `\r\n\r\n` — مما يجبر عملية الخادم على تراكم الذاكرة بشكل خطي مع عدد البايتات التي ترغب طبقة البروتوكول في تسليمها. يكفي عدد قليل من عمليات الرفع المتزامنة من هذا النوع لاستنفاد ذاكرة BEAM.
تؤثر هذه المشكلة في cowboy بدءاً من الإصدار 2.0.0 وحتى قبل الإصدار 2.15.0.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.