CVE-2020-5411
WysokieCVSS 8.1Prawdopodobieństwo exploitacji (EPSS)
Wysokie ryzykoPercentyl 78 - wyżej niż 78% wszystkich znanych CVE
Streszczenie
Jackson, gdy skonfigurowano z domyślnym typowaniem, zawiera podatność na deserializację, która może prowadzić do wykonania dowolnego kodu. Spring Batch, używając Jacksona z globalnym domyślnym typowaniem, może pozwolić na wykonanie kodu, jeśli atakujący ma dostęp zapisu do magazynu danych JobRepository.
Ocena ryzyka
Atakujący z dostępem do magazynu danych może wykonać dowolny kod w kontekście aplikacji, co może prowadzić do przejęcia systemu.
Rekomendacja
Zaleca się aktualizację Spring Batch do wersji zawierającej poprawkę oraz rozważenie wyłączenia domyślnego typowania Jacksona, jeśli nie jest to konieczne.
Inne podatności w Spring Batch
Zobacz wszystkie- CVE-2019-3774Krytyczne
Spring Batch w wersjach 3.0.9, 4.0.1, 4.1.0 i starszych nieobsługiwanych jest podatny na wstrzykiwanie zewnętrznych encji XML (XXE) podczas przetwarzania danych XML pochodzących z niezaufanych źródeł.
- CVE-2026-47881Średnie
FlatFileItemReader w Spring Batch obsługuje pliki, w których pojedynczy logiczny rekord obejmuje wiele fizycznych linii — na przykład pole CSV zawierające osadzone znaki nowej linii w cudzysłowie. Specjalnie spreparowany plik wejściowy może wykorzystać sposób, w jaki czytnik składa te wieloliniowe rekordy, do zużycia nadmiernej ilości czasu procesora i pamięci, powodując zatrzymanie zadania wsadowego lub wyczerpanie pamięci. Podatność dotyczy Spring Batch w wersjach 6.0.0-6.0.4, 5.2.0-5.2.6 oraz 4.3.0-4.3.13.
- CVE-2026-47878Średnie
DefaultExecutionContextSerializer, używany domyślnie w JDBC repozytorium zadań Spring Batch, przekazuje zdekodowane bajty Base64 bezpośrednio do ObjectInputStream.readObject() bez filtra wejściowego ograniczającego typy do zaufanej listy dozwolonych klas.
- CVE-2026-47875Średnie
Aplikacje deserializujące konteksty wykonania za pomocą Jackson2ExecutionContextStringSerializer są podatne na atak deserializacji, jeśli używają niezaufanego źródła danych dla repozytorium zadań. JobParameterDeserializer nie egzekwuje prawidłowo listy dozwolonych typów, co pozwala atakującemu na stworzenie złośliwego wejścia prowadzącego do wykonania dowolnego kodu, w tym znanych gadżetów RCE Jacksona.
Oryginalny opis (angielski, źródło NVD)
When configured to enable default typing, Jackson contained a deserialization vulnerability that could lead to arbitrary code execution. Jackson fixed this vulnerability by blacklisting known "deserialization gadgets". Spring Batch configures Jackson with global default typing enabled which means that through the previous exploit, arbitrary code could be executed if all of the following is true: * Spring Batch's Jackson support is being leveraged to serialize a job's ExecutionContext. * A malicious user gains write access to the data store used by the JobRepository (where the data to be deserialized is stored). In order to protect against this type of attack, Jackson prevents a set of untrusted gadget classes from being deserialized. Spring Batch should be proactive against blocking unknown "deserialization gadgets" when enabling default typing.

