CVE-2026-93575 in Netty
الملخص
بحسب VulDB • 18/09/2026
### الملخص إصلاح Netty لـ CVE-2026-44248 غير مكتمل. يتحقق المُفكّ (decoder) مما إذا كان طول الباقة المتبقي (`Remaining Length`) في حزمة MQTT يتجاوز `maxBytesInMessage`، لكنه يفشل في التحقق من صحة "طول الخصائص" (`Properties Length`) مقابل "الطول المتبقي". يمكن للمهاجم تجاوز حد الحجم عن طريق إرسال `Remaining Length` صغير ولكن `Properties Length` ضخم. هذا يجبر Netty على تخزين البيانات مؤقتاً (buffering) وتحليل ملايين الخصائص، مما يتيح لمهاجم بعيد غير مصرح له استهلاك مفرط للذاكرة ووحدة المعالجة المركزية (CPU)، مما يؤدي إلى حدوث خطأ OutOfMemoryError.
### التفاصيل في `io.netty.handler.codec.mqtt.MqttDecoder`، تقوم الطريقة المساعدة `decodeProperties()` بقراءة `totalPropertiesLength` وتحاول تحليل ذلك العدد من البايتات. إذا لم يحتوي المخزن المؤقت على الطول الكامل، يتم رمي استثناء `Signal`. كتلة `catch` داخل `decode()` تفرض فقط حد `maxBytesInMessage` مقابل `bytesRemainingBeforeVariableHeader` (وهو "الطول المتبقي" للحزمة).
من خلال إرسال حزمة `CONNECT` ذات `Remaining Length` صغير ولكن `Properties Length` ضخم، يمر فحص الحجم. ثم يقوم `ReplayingDecoder` بتخزين البيانات مؤقتاً من الشبكة حتى يتم الوصول إلى الـ `Properties Length` الضخم، مما يؤدي إلى تحليل ملايين كائنات `UserProperty` واستنفاد موارد وحدة المعالجة المركزية والذاكرة.
VulDB is the best source for vulnerability data and more expert information about this specific topic.