CVE-2026-110879

Kritik

Təsvir

jackson-databind class-name tip ID-sinin xarici sinfini yoxlayır, lakin onun generic arqumentləri daxilində hücum edən tərəf tərəfindən seçilmiş sinifləri qəbul edir; hətta bu siniflər bəyan edilmiş tipi pozduqda və ya birbaşa tip ID-si kimi rədd edildikdə belə. Bu, CVE-2026-54512 (GHSA-j3rv-43j4-c7qm) üçün əlavə edilmiş generic-arqument validasiyasını yan keçir ki, bu da həmin boşluğun natamam şəkildə aradan qaldırıldığını göstərir. DatabindContext._resolveAndValidateGeneric() xarici sinfi bəyan edilmiş baza tipi ilə müqayisə edib yoxlayır və sonra tip ID-sindən hər bir arqumenti _validateTypeParameter()-ə ötürür; burada arqument özünə uyğun bəyan edilmiş generic bağlamanın tətbiqi əvəzinə, xarici baza tipinə görə yoxlanılır. O, həmçinin validatorları, alt tip yoxlamasından keçməmiş arqumentlərlə çağırır. Standart DefaultBaseTypeLimitingValidator altında bu, eyni sinif birbaşa tip ID-si kimi rədd edilsə belə, generic alt tip daxilində əlaqəsiz bir sinfin qəbul edilməsinə səbəb olur. allowIfBaseType(...) qaydası xarici tipi təsdiqlədikdə, Jackson LaissezFaireSubTypeValidator-ı əvəz edir, buna görə də konfiqurasiya edilmiş validator artıq daxili arqumentləri məhdudlaşdırmır. [Lpkg.Gadget; kimi sadə massiv tip ID-lərinin element tipi də massivin baza tipi təsdiqləndikdən sonra yoxlanılmadan qalır. Təsirə məruz qalan yollar arasında standart Jackson 3.x JsonMapper ilə annotasiya əsaslı class-name polimorfizmi, həm Jackson 2.x, həm də 3.x versiyalarında konfiqurasiya edilmiş default typing və həmin default typing-i açıq qoyan inteqrasiyalar yer alır. Default-validator halında tətbiq tərəfindən yazılmış validatora ehtiyac yoxdur: @JsonTypeInfo(use = Id.CLASS) ilə birbaşa gadget tip ID-si "Not a subtype" olaraq rədd edilirken, eyni gadget-i əhatə edən generic wrapper adlandıran tip ID-si qəbul edilir və deserializasiya olunur, o cümlədən hücum edən tərəfdən təqdim edilmiş bean xüsusiyyətləri daxil olur. Class-name default typing Map-ə icazə verdiyi halda, Map<String,String> kimi bəyan edilmiş xüsusiyyət HashMap<FileSystemXmlApplicationContext,String>-i qəbul edir; daha sonra map-key kəşfi hücum edən tərəf tərəfindən idarə olunan JSON xüsusiyyət adını seçilmiş sinfin tək-simvollu konstruktoruna ötürür. Classpath-də Spring olduqda və hücum edən tərəfin idarə etdiyi XML faylları yüklənə bildikdə, həmin konstruktor XML-i yükləyir və tətbiq hesabı altında ProcessBuilder.start()-i çağırır ki, bu da ixtiyari əmrin icrasına (arbitrary command execution) şərait yaradır. Bu problem com.fasterxml.jackson.core:jackson-databind 2.10.0-dan başlayaraq və tools.jackson.core:jackson-databind 3.0.0-dan başlayaraq olan versiyalara təsir edir. 2.10.0-dan əvvəlki buraxılışlara təsir etmir, çünki PolymorphicTypeValidator jackson-databind 2.10.0 versiyasında təqdim edilmişdir.

CiddilikKritik
CVSS9.8
İstismar ehtimalı—
MəhsulFasterxml Jackson-databind
Dərc28 okt 2026
İlk görülmə28 okt 2026

Necə düzəltmək olar

Yeniləyin
  • FasterXML jackson-databind2.18.12, 2.21.8, 2.22.4, 3.1.8, 3.2.4 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
FasterXML jackson-databind2.10.0 ≤ v < 2.18.12, 2.19.0 ≤ v < 2.21.8, 2.22.0 ≤ v < 2.22.4, 3.0.0 ≤ v < 3.1.8, 3.2.0 ≤ v < 3.2.42.18.12, 2.21.8, 2.22.4, 3.1.8, 3.2.4

Versiyanızı yoxlayın

Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.

Intelligence 360 paketində

Attack Surface Management

Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.