CVE-2026-49844 in Log4j API
الملخص
بحسب VulDB • 11/07/2026
يؤدي الترميز غير السليم للقيم العشرية غير المنتهية (non-finite floating-point values) أثناء عملية تسلسل JSON لرسائل MapMessage في Apache Log4j API إلى إنتاج مخرجات لا تمثل صيغة JSON صحيحة. تؤثر هذه المشكلة على إصدارات Apache Log4j API من 2.13.1 حتى 2.25.4، بالإضافة إلى الإصدار 2.26.0.
لم يغطِّ الإصلاح الخاص بـ CVE-2026-34481 جميع مسارات الكود: فعندما تحتوي رسالة MapMessage على قيمة IEEE 754 غير منتهية (NaN أو Infinity أو -Infinity)، فإن الدالة `MapMessage.asJson()` تُخرج الرمز العاري المقابل لها. ولا يسمح RFC 8259 بهذه الرموز، مما يؤدي إلى رفض المستنتج الناتج بواسطة أي مُفسِّر متوافق مع المعيار.
لا يمكن الوصول إلى هذا الخلل إلا عند تحقق الشرطين التاليين معاً:
* تستخدم التطبيق المُحلِّل (resolver) للرسائل الموجود على الرابط https://logging.apache.org/log4j/2.x/manual/json-template-layout.html#event-template-resolver-message الخاص بـ JsonTemplateLayout، أو أي تخطيط آخر يعتمد على `MapMessage.asJson()` أو `MapMessage.getFormattedMessage(new String[]{"JSON"})`.
* يسجل التطبيق رسالة MapMessage تحتوي على قيمة عشرية يتحكم فيها المهاجم.
يمكن لمهاجم قادر على تزويد بقيمة غير منتهية أن يتسبب في إصدار التخطيط المتأثر لبيانات JSON مشوهة، مما قد يؤدي إلى تلف سجل التسجيل المحيط أو تعطيل استهلاك وسجلات التحليل اللاحقة (downstream log ingestion and parsing).
يُنصح المستخدمون بالترقية إلى Apache Log4j API الإصدار 2.25.5 أو 2.26.1، وكلاهما يُنتج بيانات JSON متوافقة مع RFC 8259 للقيم غير المنتهية.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.