CVE-2026-41731
In Spring for Apache Kafka, overly broad trusted-package matching in header mappers exposes JDK classes to deserialization
JsonKafkaHeaderMapper and the deprecated DefaultKafkaHeaderMapper matched type headers against trusted packages using a prefix check, meaning that trusting any package implicitly trusted all of its subpackages. Combined with Jackson's default bean deserialization, a producer could supply crafted header values that caused the consumer to deserialize arbitrary JDK types.
Affected versions: Spring for Apache Kafka 4.0.0 through 4.0.5; 3.3.0 through 3.3.15; 3.2.0 through 3.2.13; 2.9.0 through 2.9.13; 2.8.0 through 2.8.11.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.1
In Spring for Apache Kafka, overly broad trusted-package matching in header mappers exposes JDK classes to deserialization
JsonKafkaHeaderMapper and the deprecated DefaultKafkaHeaderMapper matched type headers against trusted packages using a prefix check, meaning that trusting any package implicitly trusted all of its subpackages. Combined with Jackson's default bean deserialization, a producer could supply crafted header values that caused the consumer to deserialize arbitrary JDK types.
Affected versions: Spring for Apache Kafka 4.0.0 through 4.0.5; 3.3.0 through 3.3.15; 3.2.0 through 3.2.13; 2.9.0 through 2.9.13; 2.8.0 through 2.8.11.
- Record
CVE-2026-41731- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-502, CWE-502
- Updated
- 2026-11-02
EUVDEUVD-2026-35908
8.1
JsonKafkaHeaderMapper and the deprecated DefaultKafkaHeaderMapper matched type headers against trusted packages using a prefix check, meaning that trusting any package implicitly trusted all of its subpackages. Combined with Jackson's default bean deserialization, a producer could supply crafted header values that caused the consumer to deserialize arbitrary JDK types.
Affected versions: Spring for Apache Kafka 4.0.0 through 4.0.5; 3.3.0 through 3.3.15; 3.2.0 through 3.2.13; 2.9.0 through 2.9.13; 2.8.0 through 2.8.11.
- Record
EUVD-2026-35908- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-xq69-5h5v-x9x4
8.1
In Spring for Apache Kafka, overly broad trusted-package matching in header mappers exposes JDK classes to deserialization
JsonKafkaHeaderMapper and the deprecated DefaultKafkaHeaderMapper matched type headers against trusted packages using a prefix check, meaning that trusting any package implicitly trusted all of its subpackages. Combined with Jackson's default bean deserialization, a producer could supply crafted header values that caused the consumer to deserialize arbitrary JDK types.
Affected versions: Spring for Apache Kafka 4.0.0 through 4.0.5; 3.3.0 through 3.3.15; 3.2.0 through 3.2.13; 2.9.0 through 2.9.13; 2.8.0 through 2.8.11.
- Record
GHSA-xq69-5h5v-x9x4- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-502
- Updated
- 2026-11-02
NVD
8.1
JsonKafkaHeaderMapper and the deprecated DefaultKafkaHeaderMapper matched type headers against trusted packages using a prefix check, meaning that trusting any package implicitly trusted all of its subpackages. Combined with Jackson's default bean deserialization, a producer could supply crafted header values that caused the consumer to deserialize arbitrary JDK types.
Affected versions: Spring for Apache Kafka 4.0.0 through 4.0.5; 3.3.0 through 3.3.15; 3.2.0 through 3.2.13; 2.9.0 through 2.9.13; 2.8.0 through 2.8.11.
- Record
CVE-2026-41731- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-502
- Updated
- 2026-11-02
OSV
8.1
In Spring for Apache Kafka, overly broad trusted-package matching in header mappers exposes JDK classes to deserialization
JsonKafkaHeaderMapper and the deprecated DefaultKafkaHeaderMapper matched type headers against trusted packages using a prefix check, meaning that trusting any package implicitly trusted all of its subpackages. Combined with Jackson's default bean deserialization, a producer could supply crafted header values that caused the consumer to deserialize arbitrary JDK types.
Affected versions: Spring for Apache Kafka 4.0.0 through 4.0.5; 3.3.0 through 3.3.15; 3.2.0 through 3.2.13; 2.9.0 through 2.9.13; 2.8.0 through 2.8.11.
- Record
CVE-2026-41731- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-502
- Updated
- 2026-11-02
OSVGHSA-xq69-5h5v-x9x4
8.1
In Spring for Apache Kafka, overly broad trusted-package matching in header mappers exposes JDK classes to deserialization
JsonKafkaHeaderMapper and the deprecated DefaultKafkaHeaderMapper matched type headers against trusted packages using a prefix check, meaning that trusting any package implicitly trusted all of its subpackages. Combined with Jackson's default bean deserialization, a producer could supply crafted header values that caused the consumer to deserialize arbitrary JDK types.
Affected versions: Spring for Apache Kafka 4.0.0 through 4.0.5; 3.3.0 through 3.3.15; 3.2.0 through 3.2.13; 2.9.0 through 2.9.13; 2.8.0 through 2.8.11.
- Record
GHSA-xq69-5h5v-x9x4- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-502
- Updated
- 2026-11-02
OSVROOT-APP-MAVEN-CVE-2026-41731 No score
CVE-2026-41731 in org.springframework.kafka:spring-kafka - Patched by Root
Root has patched CVE-2026-41731 in the org.springframework.kafka:spring-kafka package for Root:Maven. Multiple fixed versions available.
- Record
ROOT-APP-MAVEN-CVE-2026-41731- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
org.springframework.kafka:spring-kafkaMaven |
4.0.0 to 4.0.5 | 4.0.6 |
org.springframework.kafka:spring-kafkaMaven |
3.3.0 to 3.3.15 | 3.3.16 |
org.springframework.kafka:spring-kafkaMaven |
3.2.0 to 3.2.13 | None known |
org.springframework.kafka:spring-kafkaMaven |
2.9.0 to 2.9.13 | None known |
org.springframework.kafka:spring-kafkaMaven |
through 2.8.11 | None known |
org.springframework.kafka:spring-kafkaMaven |
4.0.0 up to 4.0.6, plus listed versions 4.0.14.0.24.0.34.0.44.0.5 |
4.0.6 |
org.springframework.kafka:spring-kafkaMaven |
3.3.0 up to 3.3.16, plus listed versions 3.3.13.3.103.3.113.3.123.3.13 Show 10 moreShow less3.3.143.3.153.3.23.3.33.3.43.3.53.3.63.3.73.3.83.3.9 |
3.3.16 |
org.springframework.kafka:spring-kafkaMaven |
3.2.0 to 3.2.13, plus listed versions 3.2.13.2.103.2.23.2.33.2.4 Show 5 moreShow less3.2.53.2.63.2.73.2.83.2.9 |
None known |
org.springframework.kafka:spring-kafkaMaven |
2.9.0 to 2.9.13, plus listed versions 2.9.12.9.102.9.112.9.122.9.2 Show 7 moreShow less2.9.32.9.42.9.52.9.62.9.72.9.82.9.9 |
None known |
org.springframework.kafka:spring-kafkaMaven |
through 2.8.11, plus listed versions 1.0.0.RELEASE1.0.1.RELEASE1.0.2.RELEASE1.0.3.RELEASE1.0.4.RELEASE Show 45 moreShow less1.0.5.RELEASE1.0.6.RELEASE1.1.0.RELEASE1.1.1.RELEASE1.1.2.RELEASE1.1.3.RELEASE1.1.4.RELEASE1.1.5.RELEASE1.1.6.RELEASE1.1.7.RELEASE1.1.8.RELEASE1.2.0.RELEASE1.2.1.RELEASE1.2.2.RELEASE1.2.3.RELEASE1.3.0.RELEASE1.3.1.RELEASE1.3.10.RELEASE1.3.11.RELEASE1.3.2.RELEASE1.3.3.RELEASE1.3.4.RELEASE1.3.5.RELEASE1.3.6.RELEASE1.3.7.RELEASE1.3.8.RELEASE1.3.9.RELEASE2.0.0.RELEASE2.0.1.RELEASE2.0.2.RELEASE2.0.3.RELEASE2.0.4.RELEASE2.0.5.RELEASE2.0.6.RELEASE2.0.7.RELEASE2.0.8.RELEASE2.1.0.RELEASE2.1.1.RELEASE2.1.10.RELEASE2.1.11.RELEASE2.1.12.RELEASE2.1.13.RELEASE2.1.14.RELEASE2.1.2.RELEASE2.1.3.RELEASE |
None known |
org.springframework.kafka:spring-kafkaRoot:Maven |
before 3.3.14-aikido.1 | 3.3.14-aikido.14.0.4-aikido.13.2.4-aikido.14.0.5-aikido.13.3.15-aikido.13.3.7-aikido.1 |
io.root.org.springframework.kafka:spring-kafkaRoot:Maven |
before 3.3.14-root.io.1 | 3.3.14-root.io.14.0.4-root.io.13.2.4-root.io.14.0.5-root.io.13.3.15-root.io.13.3.7-root.io.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-41731 is a high vulnerability (CVSS 8.1) in Spring For Apache Kafka, published June 9, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.51%, the 43rd percentile. Fixed in org.springframework.kafka:spring-kafka 4.0.6.
References
spring.io/security/cve-2026-41731
access.redhat.com/security/cve/CVE-2026-41731
bugzilla.redhat.com/show_bug.cgi?id=2487375
security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-41731.json
nvd.nist.gov/vuln/detail/CVE-2026-41731
github.com/advisories/GHSA-xq69-5h5v-x9x4
github.com/CVEProject/cvelistV5/tree/main/cves/2026/41xxx/CVE-2026-41731.json
github.com/spring-projects/spring-kafka
Left out here: 109 versions. The JSON record has them.