تجاوز PolymorphicTypeValidator في jackson-databind

الثغرة CVE-2026-110879 هي إصلاح غير مكتمل للمشكلة السابقة CVE-2026-54512 في مكتبة jackson-databind. يستغل الهجوم خطأً منطقيًا في التحقق من النوع: يتحقق المدقق من الفئة الخارجية لكنه يفشل في التحقق من الفئات المحددة في وسائط النوع العام الخاصة بها أو كأنواع عناصر المصفوفة. ونتيجة لذلك، يمكن للمهاجم إنشاء نسخة من فئة عشوائية كان سيتم رفضها إذا تم تحديدها مباشرة.
كيف يعمل
  1. نقطة الدخول: يمكن تفعيل الثغرة عندما تقوم التطبيقات بإلغاء تسلسل JSON إلى كائنات بناءً على أسماء الفئات — إما من خلال التعليق التوضيحي @JsonTypeInfo(use = Id.CLASS) أو عند تمكين الكتابة الافتراضية.
  2. خطأ في الكود: تتحقق طريقة DatabindContext._resolveAndValidateGeneric() من الفئة الخارجية مقابل النوع الأساسي المعلن ثم تمرر الوسائط من معرّف نوع اسم الفئة إلى _validateTypeParameter(). تتحقق هذه الطريقة من كل وسيط مقابل النوع الأساسي الخارجي بدلاً من فرض نوعه العام المعلن المقابل.
  3. تجاوز المدقق: ونتيجة لذلك، يمكن تمرير فئة خطرة «تحت غطاء» نوع آخر، متجاوزةً فحوصات المدقق. إذا وافقت قاعدة allowIfBaseType(...) على النوع الخارجي، يستبدل Jackson المدقق المُكوَّن بـ LaissezFaireSubTypeValidator، الذي يسمح بجميع الأنواع الفرعية.
الثغرات
الباحثون
المورّدون
المنتجات