CVE-2023-34040
ŚrednieCVSS 5.3Prawdopodobieństwo exploitacji (EPSS)
Wysokie ryzykoPercentyl 80 - wyżej niż 80% wszystkich znanych CVE
Streszczenie
W Spring dla Apache Kafka w wersjach 3.0.9 i wcześniejszych oraz 2.9.10 i wcześniejszych istnieje potencjalna podatność na atak deserializacji, która występuje tylko w przypadku nietypowej konfiguracji. Atakujący musiałby skonstruować złośliwy obiekt serializowany w jednym z nagłówków rekordów wyjątków deserializacji.
Ocena ryzyka
Organizacja jest narażona na ataki, które mogą prowadzić do wykonania złośliwego kodu, jeśli nie zostaną podjęte odpowiednie środki zabezpieczające. W szczególności, ryzyko wzrasta, gdy użytkownik zezwala na publikację z niezaufanych źródeł do tematu Kafka.
Rekomendacja
Zaleca się skonfigurowanie ErrorHandlingDeserializer dla klucza i/lub wartości rekordu oraz ustawienie właściwości kontenera checkDeserExWhenKeyNull i checkDeserExWhenValueNull na fałsz. Należy również ograniczyć publikację do zaufanych źródeł.
Inne podatności w Spring for Apache Kafka
Zobacz wszystkie- CVE-2026-59317Średnie
DeadLetterPublishingRecovererFactory odczytuje nagłówek retry_topic-original-timestamp z przychodzącego ConsumerRecord i przekazuje jego surowe bajty bezpośrednio do new BigInteger(header.value()) bez walidacji długości lub formatu. Podatność dotyczy Spring for Apache Kafka w wersjach 4.1.0, 4.0.0-4.0.6, 3.0.0-3.3.16, 2.9.0-2.9.14 oraz 2.8.12 i wcześniejszych.
- CVE-2026-59278Średnie
JsonKafkaHeaderMapper i DefaultKafkaHeaderMapper zawierają java.net na liście domyślnych zaufanych pakietów. Gdy te mappery są używane (co jest domyślną konfiguracją dla wszystkich konsumentów @KafkaListener), zewnętrzny producent Kafka może wstrzyknąć typ java.net.InetAddress przez nagłówek wiadomości spring_json_header_types. Podatność dotyczy Spring for Apache Kafka w wersjach 4.1.0, 4.0.0-4.0.6, 3.0.0-3.3.16, 2.9.0-2.9.14 oraz 2.8.12 i wcześniejszych.
- CVE-2026-41731Wysokie
JsonKafkaHeaderMapper i przestarzały DefaultKafkaHeaderMapper dopasowują nagłówki typów do zaufanych pakietów za pomocą sprawdzania prefiksu, co oznacza, że zaufanie dowolnemu pakietowi niejawnie ufa wszystkim jego podpakietom. W połączeniu z domyślną deserializacją beanów Jacksona, producent może dostarczyć spreparowane wartości nagłówków, które powodują deserializację dowolnych typów JDK przez konsumenta. Dotyczy Spring for Apache Kafka 4.0.0-4.0.5, 3.3.0-3.3.15, 3.2.0-3.2.13, 2.9.0-2.9.13, 2.8.0-2.8.11.
- CVE-2026-41727Średnie
Infrastruktura tematów ponownych prób Spring Kafka nie walidowała wystarczająco wartości nagłówków kontrolowanych przez użytkownika przed działaniem na nich. Producent mógł wysłać rekord z spreparowanym nagłówkiem retry_topic-attempts, aby podać nieprawidłową liczbę prób i spowodować błędną identyfikację pozycji wiadomości w sekwencji ponownych prób przez router tematów ponownych prób.
- CVE-2026-41726Średnie
Spring for Apache Kafka w wersjach 4.0.0-4.0.5, 3.3.0-3.3.15, 3.2.0-3.2.13, 2.9.0-2.9.13 i 2.8.0-2.8.11 pozwala producentowi na nieograniczone zwiększanie sterty konsumenta poprzez wysyłanie rekordów z unikalnymi wartościami nagłówka spring.kafka.serialization.selector, co prowadzi do przeciążenia GC i błędu OutOfMemoryError.
Oryginalny opis (angielski, źródło NVD)
In Spring for Apache Kafka 3.0.9 and earlier and versions 2.9.10 and earlier, a possible deserialization attack vector existed, but only if unusual configuration was applied. An attacker would have to construct a malicious serialized object in one of the deserialization exception record headers. Specifically, an application is vulnerable when all of the following are true: * The user does not configure an ErrorHandlingDeserializer for the key and/or value of the record * The user explicitly sets container properties checkDeserExWhenKeyNull and/or checkDeserExWhenValueNull container properties to true. * The user allows untrusted sources to publish to a Kafka topic By default, these properties are false, and the container only attempts to deserialize the headers if an ErrorHandlingDeserializer is configured. The ErrorHandlingDeserializer prevents the vulnerability by removing any such malicious headers before processing the record.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

