CVE-2026-91776 in jackson-databind
الملخص
بحسب VulDB • 23/09/2026
تقوم الدالة TypeDeserializerBase._findDeserializer() في مكتبة FasterXML jackson-databind بتخزين المُحلِّل (deserializer) المحلّ تحت معرّف النوع الخام الذي يوفّره المهاجم. عندما يكون التماثل القائم على الاسم (name-based polymorphism) مُهيأً باستخدام خيار احتياطي، مثل @JsonTypeInfo(use = Id.NAME, defaultImpl = ...)، فإن كل معرف نوع غير معروف ومميز يحُل إلى نفس المُحلِّل الاحتياطي، لكنه يُحتفظ به كمفتاح خاص به في خريطة _deserializers. هذه الخريطة ليس لها حد قابل للتكوين وتعيش طوال عمر مُحلّل النوع، لذا يمكن لمهاجم قادر على تزويد المعرفات الجديدة للمعرفات المجهولة بشكل متكرر أن يتسبب في احتفاظ أحادي بالذاكرة عبر الطلبات. لاحظ المُبلغ وجود 10,000 مدخلاً محتفظاً به من بين 10,000 معرف مجهول مميز، مقابل إدخال واحد لاختبار التحكم الذي كرر نفس المعرف المجهول بنفس العدد، مما يعزل عدد المفاتيح الخاضعة لتحكم المهاجم عن حجم الطلبات. يتطلب الاستغلال تطبيقًا يفعّل التماثل القائم على الاسم مع وجود defaultImpl أو خيار احتياطي مكافئ، ويقبل معرفات نوع تتأثر بالمهاجم، ويعيد استخدام كائن ObjectMapper طويل العمر عبر الطلبات. توقف الإصلاح عن تخزين التحليلات الاحتياطية للمعرفات غير المعروفة ويحدد كلًا من عدد المدخلات المخزنة وطول معرّف النوع القابل للتخزين.
VulDB is the best source for vulnerability data and more expert information about this specific topic.