CVE-2026-19032
ŚrednieCVSS 5.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 39 - wyżej niż 39% wszystkich znanych CVE
Streszczenie
Deserializator jackson-databind dla java.nio.file.Path rozwiązuje URI dostarczone przez atakującego bez ograniczania schematu URI. Może to pozwolić na wybranie i sterowanie dowolnym zarejestrowanym FileSystemProvider podczas deserializacji niezaufanego JSON. Wpływ jest ograniczony, jeśli dostępne są tylko wbudowane providery JDK, ale może być poważniejszy przy obecności zewnętrznych providerów.
Ocena ryzyka
Organizacja może być narażona na nieautoryzowany dostęp do plików lub operacje na systemie plików, jeśli w classpath znajdują się zewnętrzne providery FileSystemProvider.
Rekomendacja
Zaktualizuj jackson-databind do jednej z podatnych wersji: 2.18.10, 2.21.6, 2.22.2, 3.1.6 lub 3.2.2. Unikaj wiązania java.nio.file.Path z niezaufanego JSON.
Inne podatności w jackson-databind
Zobacz wszystkie- CVE-2026-68497Wysokie
Podatność w bibliotece jackson-databind polega na tym, że deserializatory typów XML (Duration, XMLGregorianCalendar) przekazują surowy łańcuch JSON bezpośrednio do konstruktorów BigInteger/BigDecimal, które mają złożoność kwadratową względem liczby cyfr. Ponieważ cyfry znajdują się w tokenie łańcucha znaków, a nie liczby, zabezpieczenie StreamReadConstraints.maxNumberLength nie działa, co pozwala atakującemu na wywołanie długotrwałego obciążenia CPU pojedynczym żądaniem.
- CVE-2021-20190Wysokie
Błąd w jackson-databind przed wersją 2.9.10.7 powoduje nieprawidłowe zarządzanie interakcją między gadżetami serializacji a typowaniem. Największe zagrożenie dotyczy poufności i integralności danych oraz dostępności systemu.
- CVE-2026-83557Średnie
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.
- CVE-2026-77310Średnie
jackson-databind, biblioteka do wiązania danych ogólnego przeznaczenia dla Jackson Data Processor, przed wersjami 2.18.9, 2.21.5, 2.22.1, 3.1.5 i 3.2.1 zawiera podatność w gałęzi java.net.InetAddress w metodzie FromStringDeserializer.Std._deserialize(). Funkcja wywołuje InetAddress.getByName() na danych kontrolowanych przez atakującego, co powoduje niecierpliwe rozwiązywanie DNS podczas deserializacji i umożliwia ataki SSRF oparte na DNS oraz enumerację wewnętrznych hostów.
- CVE-2026-59889Średnie
W bibliotece jackson-databind wykryto podatność polegającą na tym, że metoda UnwrappedPropertyHandler.processUnwrapped() przetwarza buforowany JSON dla właściwości @JsonUnwrapped bez sprawdzania widoczności (@JsonView). Umożliwia to atakującemu zapisanie właściwości oznaczonej zarówno @JsonView, jak i @JsonUnwrapped, nawet przy mniej uprzywilejowanym widoku aktywnym.
- CVE-2026-59888Średnie
Podatność w jackson-databind pozwala na ominięcie adnotacji @JsonIgnore w rekordach Javy używających PropertyNamingStrategy. Problem występuje w wersjach od 2.15.0 do 2.18.8, 2.21.4 i 3.1.4, gdzie ignorowane pole jest rejestrowane pod oryginalną nazwą przed zastosowaniem strategii nazewnictwa, co umożliwia przypisanie zmienionego klucza JSON do parametru konstruktora rekordu.
- CVE-2026-54515Średnie
W bibliotece jackson-databind od wersji 2.8.0 do 2.18.9, 2.21.5 i 3.1.4 występuje podatność polegająca na tym, że podczas deserializacji obiektów z adnotacją @JsonIgnoreProperties, wykluczone właściwości są usuwane z mapy BeanPropertyMap, ale późniejsze przetwarzanie z uwzględnieniem wielkości liter (ACCEPT_CASE_INSENSITIVE_PROPERTIES) odtwarza oryginalną, niefiltrowaną mapę, przywracając usunięte właściwości. W rezultacie zignorowana właściwość staje się ponownie zapisywalna.
- CVE-2026-54514Średnie
Podatność w jackson-databind od wersji 2.0.0 do 2.18.8, 2.21.4 i 3.1.4 powoduje, że podczas deserializacji obiektu InetSocketAddress następuje natychmiastowe rozwiązywanie nazw DNS dla danych wejściowych pochodzących z niezaufanego źródła. Atakujący może wymusić wykonanie zapytania DNS na wybranym przez siebie hoście jeszcze przed jakąkolwiek walidacją aplikacyjną.
- CVE-2026-54513Wysokie
Jackson-databind od wersji 2.10.0 do 2.18.8, 2.21.4 i 3.1.4 zawiera lukę w BasicPolymorphicTypeValidator, gdzie metoda allowIfSubTypeIsArray() zezwala na dowolne typy tablicowe bez walidacji typu elementu. Pozwala to na ominięcie listy dozwolonych typów i deserializację niebezpiecznych obiektów, takich jak EvilType[].
- CVE-2023-35116Średnie
Jackson-databind w wersjach do 2.15.2 pozwala atakującym na spowodowanie odmowy usługi lub innego nieokreślonego wpływu poprzez skonstruowany obiekt wykorzystujący cykliczne zależności.
Oryginalny opis (angielski, źródło NVD)
jackson-databind's deserializer for java.nio.file.Path resolves an attacker-supplied URI without restricting the URI scheme. In JDKFromStringDeserializer.NioPathHelper.deserialize, a string bound from untrusted JSON is passed to new URI(value) and then to Path.of(uri). When that throws FileSystemNotFoundException, the code enumerates ServiceLoader<FileSystemProvider> and calls provider.getPath(uri) on the first provider whose scheme matches the attacker-chosen scheme. Untrusted JSON can therefore select and drive an arbitrary registered FileSystemProvider during readValue under a default JsonMapper, and forces provider class loading at the same time. With only the JDK built-in providers (file, jar/zipfs) present, the resolved path is inert and no mount or network I/O occurs; further impact requires a side-effecting third-party FileSystemProvider on the classpath. This affects com.fasterxml.jackson.core:jackson-databind from 2.8.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. Binding java.nio.file.Path from untrusted JSON should be avoided regardless of version.

