CVE-2026-54513
WysokieCVSS 8.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 48 — wyżej niż 48% wszystkich znanych CVE
Streszczenie
Podatność w jackson-databind pozwala na ominięcie listy dozwolonych typów (allowlist) w BasicPolymorphicTypeValidator. Metoda allowIfSubTypeIsArray() zezwala na dowolny typ tablicowy bez walidacji typu elementu, co umożliwia deserializację niebezpiecznych typów, takich jak EvilType[], nawet jeśli EvilType nie znajduje się na liście dozwolonych.
Ocena ryzyka
Atakujący może zdalnie wykonać nieautoryzowaną deserializację obiektów, prowadzącą do zdalnego wykonania kodu (RCE) lub innych ataków związanych z deserializacją, co stanowi poważne zagrożenie dla bezpieczeństwa aplikacji.
Rekomendacja
Należy natychmiast zaktualizować jackson-databind do wersji 2.18.8, 2.21.4 lub 3.1.4. Jeśli aktualizacja nie jest możliwa, unikaj używania allowIfSubTypeIsArray() w konfiguracji BasicPolymorphicTypeValidator.
Oryginalny opis (angielski, źródło NVD)
jackson-databind contains the general-purpose data-binding functionality and tree-model for Jackson Data Processor. From 2.10.0 until 2.18.8, 2.21.4, and 3.1.4, BasicPolymorphicTypeValidator.Builder.allowIfSubTypeIsArray() allowlists any array type based only on clazz.isArray(), without validating the array's component (element) type against the configured allowlist. A PTV built with allowIfSubTypeIsArray() plus an explicit concrete-type allowlist therefore still permits EvilType[] even though EvilType is not allowlisted. When Jackson deserializes the elements and no per-element type IDs are present, it instantiates the component type directly with no further PTV check, bypassing the allowlist. This vulnerability is fixed in 2.18.8, 2.21.4, and 3.1.4.

