PT-2026-47332

CVE-2026-49755

·

تاريخ النشر

2026-06-08

·

تاريخ التحديث

2026-10-11

الوصف من

CVSS 4.0
8.2
عالية
المقاييسAV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
اسم البرنامج المعرض للخطر والإصدارات المتأثرة
إصدارات wojtekmach Req من 0.1.0 إلى 0.6.0
الوصف
تسمح المعالجة غير السليمة للبيانات شديدة الضغط لخوادم HTTP التي يتحكم فيها المهاجمون باستنفاد ذاكرة العميل عبر نصوص استجابة ”قنبلة فك الضغط“. يتضمن مسار الاستجابة الافتراضي الدالتين decode body() وdecompress body(). تعالج الدالة decode body() نوع المحتوى المقدم من الخادم وتستدعي :zip.extract(body, [:memory]) لـ application/zip، و:erl tar.extract({:binary, body}, [:memory]) لنوع المحتوى application/x-tar، و:erl tar.extract({:binary, body}, [:memory, :compressed]) لنوع المحتوى application/gzip أو .tgz. تُرجع هذه العمليات محتويات الأرشيف الكاملة بعد فك الضغط إلى الذاكرة دون حد أقصى للحجم الإجمالي. بالإضافة إلى ذلك، تقوم decompress body() بربط برامج فك التشفير :zlib و:brotli و:ezstd استنادًا إلى رأس ترميز المحتوى (content-encoding)، مما يسمح للردود بالانتفاخ عبر طبقات متعددة دون حدود. ونظرًا لأن هذه الخطوات ممكّنة افتراضيًا، يمكن أن يتوسع رد صغير إلى عدة غيغابايت، مما يؤدي إلى تعطل عملية BEAM.
التوصيات
قم بالتحديث إلى الإصدار 0.6.1.
كحل مؤقت، قم بتعطيل فك تشفير نص الاستجابة تلقائيًا عن طريق تمرير decode body: false إلى Req.new() أو Req.get!() للطلبات التي تسترد عناوين URL التي يتلاعب بها المهاجمون.
لتخطي مسار فك ضغط ترميز المحتوى، قم بتمرير raw: true لضمان بقاء نص الاستجابة على شكل بايتات خام للتحقق من الحجم قبل فك الضغط.
قابلية الاستغلال
استغلال
إصلاح
الباحثون
المورّدون
المنتجات المتأثرة
المعرّفات ذات الصلة
GHSA-655F-MP8P-96GV
وجدت خطأً في الوصف؟ لديك ما تضيفه؟ لا تتردد في مراسلتنا 👾