Katalog CVE

CVE-2026-83557

ŚrednieCVSS 5.6
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.59%

Percentyl 46 - wyżej niż 46% wszystkich znanych CVE

Streszczenie

Walidator DefaultBaseTypeLimitingValidator w bibliotece jackson-databind, stosowany automatycznie przy użyciu adnotacji @JsonTypeInfo bez własnego walidatora, nie uwzględniał typu java.lang.Comparable na liście niebezpiecznych typów bazowych. W efekcie aplikacja deklarująca właściwość lub klasę z Comparable jako typem bazowym akceptuje identyfikatory typów dla praktycznie dowolnej klasy implementującej Comparable, co pozwala atakującemu na tworzenie obiektów pod jego kontrolą. Wykazano możliwość utworzenia obiektu java.io.File dla dowolnej ścieżki.

Ocena ryzyka

Atakujący może wymusić utworzenie obiektów wybranych klas, co w przypadku java.io.File prowadzi do manipulacji ścieżkami (path traversal), jeśli aplikacja wykonuje na takiej wartości operacje zależne od ścieżki. Nie zidentyfikowano przypadku samej deserializacji prowadzącej do wykonania kodu, ale ryzyko obejmuje aplikacje używające @JsonTypeInfo z Comparable jako typem bazowym.

Rekomendacja

Zaktualizuj bibliotekę jackson-databind do wersji 2.18.10, 2.21.6, 2.22.2, 3.1.6 lub 3.2.2 w zależności od używanej gałęzi. Jeśli aktualizacja nie jest możliwa, skonfiguruj jawny PolymorphicTypeValidator dla właściwości i klas z adnotacją @JsonTypeInfo.

Inne podatności w jackson-databind

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

DefaultBaseTypeLimitingValidator is the PolymorphicTypeValidator applied automatically whenever @JsonTypeInfo is used without an explicitly configured custom validator. It denies polymorphic resolution only for a fixed set of "unsafe base types", and its isSafeSubType method returns true unconditionally for every base type outside that set. java.lang.Comparable was absent from the list despite being implemented by a very large fraction of JDK and application classes, comparable in breadth to java.io.Serializable, which is on the list for that reason. An application declaring an @JsonTypeInfo-annotated property or class with Comparable as its base type, and no custom PolymorphicTypeValidator, will accept a type identifier for essentially any class implementing Comparable. This yields an attacker-controlled object instantiation primitive; a demonstrated case constructs a java.io.File for an arbitrary attacker-chosen path, which becomes path-traversal-adjacent if the application subsequently calls path-sensitive methods on the value. No class implementing Comparable has been identified that yields code execution through deserialization alone. Global Default Typing via activateDefaultTyping is not affected, because that method structurally requires an explicit PolymorphicTypeValidator argument. This affects com.fasterxml.jackson.core:jackson-databind from 2.11.0 before 2.18.10, from 2.19.0 before 2.21.6, and from 2.22.0 before 2.22.2, and tools.jackson.core:jackson-databind from 3.0.0 before 3.1.6 and from 3.2.0 before 3.2.2. Users should upgrade to 2.18.10, 2.21.6, 2.22.2, 3.1.6, or 3.2.2.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS