CVE-2026-110879
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
jackson-databind sprawdza zewnętrzną klasę identyfikatora typu nazwy klasy, ale akceptuje klasy wybrane przez atakującego w swoich ogólnych argumentach, nawet jeśli te klasy naruszają zadeklarowany typ lub zostałyby odrzucone jako identyfikatory typu bezpośredniego. Pomija to weryfikację argumentów ogólnych dodaną dla CVE-2026-54512 (GHSA-j3rv-43j4-c7qm), której jest to niekompletna poprawka.
DatabindContext._resolveAndValidateGeneric() sprawdza klasę zewnętrzną pod kątem zadeklarowanego typu bazowego, a następnie przekazuje każdy argument z identyfikatora typu do funkcji _validateTypeParameter(), która weryfikuje argument względem zewnętrznego typu bazowego, zamiast wymuszać odpowiadające mu zadeklarowane powiązanie ogólne. Wywołuje także walidatory z argumentami, które nie przeszły kontroli podtypu, jakiej oczekują te walidatory. W ramach domyślnej wartości DefaultBaseTypeLimitingValidator akceptowana jest niepowiązana klasa wewnątrz podtypu ogólnego, nawet jeśli ta sama klasa zostanie odrzucona jako identyfikator typu bezpośredniego. Tam, gdzie reguła zezwoleniaIfBaseType(...) zatwierdza typ zewnętrzny, Jackson zastępuje LaissezFaireSubTypeValidator, więc skonfigurowany moduł sprawdzania poprawności nie ogranicza już osadzonych argumentów. Typ elementu zwykłego identyfikatora typu tablicowego, taki jak [Lpkg.Gadget; również pozostaje niezweryfikowany po zatwierdzeniu typu podstawowego tablicy.
Dotknięte ścieżki obejmują polimorfizm nazw klas oparty na adnotacjach z domyślnym JsonMapperem Jackson 3.x, skonfigurowane domyślne pisanie zarówno w Jackson 2.x, jak i 3.x oraz integracje, które ujawniają to domyślne pisanie. Przypadek domyślnego walidatora nie wymaga walidatora utworzonego przez aplikację: w przypadku @JsonTypeInfo(use = Id.CLASS) bezpośredni identyfikator typu gadżetu jest odrzucany jako „Nie jest podtypem”, natomiast identyfikator typu określający ogólne opakowanie wokół tego samego gadżetu jest akceptowany i deserializowany, łącznie z właściwościami komponentu fasoli dostarczonymi przez atakującego. Tam, gdzie domyślne wpisywanie nazwy klasy pozwala na Map, właściwość zadeklarowana jako Map<String,String> akceptuje HashMap<FileSystemXmlApplicationContext,String>; map-key Discovery przekazuje następnie nazwę właściwości JSON kontrolowaną przez osobę atakującą do jednociągowego konstruktora wybranej klasy. Mając Spring w ścieżce klas i XML kontrolowany przez atakującego, aplikacja może załadować, ten konstruktor ładuje XML i wywołuje ProcessBuilder.start() w ramach konta aplikacji, dając wykonanie dowolnego polecenia.
Ten problem dotyczy com.fasterxml.jackson.core:jackson-databind od wersji 2.10.0 i Tools.jackson.core:jackson-databind od wersji 3.0.0. Nie ma to wpływu na wersje wcześniejsze niż 2.10.0, ponieważ moduł PolymorphicTypeValidator został wprowadzony w wersji jackson-databind 2.10.0.
>_ Słabości (CWE)
>_ Referencje
Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.
This product uses the NVD API but is not endorsed or certified by the NVD.
Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.
CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.
NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org