Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain Kafka producer credentials or access to target topic
-
DeliveryCraft message with spring_json_header_types: java.net.InetAddress header
-
ExploitDeliver message to subscribed Kafka topic
-
Execution@KafkaListener DefaultKafkaHeaderMapper processes header
-
PersistInetAddress deserialization triggers DNS resolution
-
ImpactAttacker observes DNS query for network reconnaissance or data exfiltration
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Three concrete conditions must hold simultaneously: the target application must use @KafkaListener consumers (the idiomatic Spring Kafka pattern); must use JsonKafkaHeaderMapper or DefaultKafkaHeaderMapper without an explicit setTrustedPackages() call that excludes java.net (the default for all Spring Kafka consumers - no misconfiguration required); and the attacker must have the ability to produce messages to a Kafka topic the target application is subscribed to. The third condition - Kafka producer access - is the primary limiting factor and separates this from a trivially internet-exploitable flaw. Kafka brokers with no producer ACLs or with broad internal service account permissions are most at risk. Applications that have already configured a restrictive trusted-packages allowlist are not affected regardless of version. There are no platform, OS, or Java runtime version prerequisites beyond running Spring Kafka in the affected version range. |
| Impact | The CVSS 6.5 Medium score (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N) reflects a broadly exploitable surface: any party able to produce messages to a Kafka topic the target subscribes to can trigger the flaw with no authentication and minimal complexity. In practice, Kafka brokers are rarely exposed to the open internet and typically reside on internal networks with some degree of access control, meaning the PR:N/AV:N combination overstates practical accessibility for most deployments - broker-level producer ACLs are a meaningful real-world barrier. The primary exploitation outcome is DNS-based SSRF via InetAddress instantiation, enabling internal network reconnaissance and potential data exfiltration via DNS channels rather than direct code execution, which contextualizes the C:L/I:L impact ratings. No EPSS score is present in the supplied intelligence. The CVE is not in CISA KEV and no POC has been identified, placing SSVC exploitation status at 'none (active)' at time of analysis. The broadest real-world risk factor is the default-configuration footprint: every @KafkaListener deployment using stock Spring Kafka is affected without any misconfiguration on the developer's part, making the aggregate exposure surface large even if individual exploitation requires broker access. |
| Exploit ScenarioDerived | An attacker with producer access to a Kafka topic consumed by the target application sends a crafted message with the spring_json_header_types header set to java.net.InetAddress and a header value containing an attacker-controlled hostname. The @KafkaListener's DefaultKafkaHeaderMapper, trusting java.net by default, deserializes the value as an InetAddress object, triggering an outbound DNS resolution to the attacker's domain. The attacker observes the DNS query, confirming the consumer host's identity, internal reachability, and potentially exfiltrating small amounts of data encoded in DNS subdomains. No public POC has been identified, but exploitation requires only standard Kafka producer API calls. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 27, 2026
Header type injection in Spring for Apache Kafka's default mapper configuration allows any Kafka producer with access to a consumed topic to inject java.net.InetAddress objects through the spring_json_header_types message header, triggering DNS resolution on the consumer host. All applications using @KafkaListener with the default JsonKafkaHeaderMapper or DefaultKafkaHeaderMapper - spanning versions 2.8.x through 4.1.0 - are affected without any non-default configuration required. No public exploit code has been identified at time of analysis, and the CVE is not listed in CISA KEV.
RemediationAI
Apply the vendor-released patch by upgrading Spring for Apache Kafka to a fixed version as detailed in the Spring security advisory at https://spring.io/security/cve-2026-59278; no specific fixed version number is confirmed in the available intelligence and should be verified directly against the advisory. As an immediate workaround, override the trusted packages list on the header mapper by calling mapper.setTrustedPackages() with an explicit allowlist that excludes java.net - this prevents InetAddress deserialization but will break any legitimate use of java.net types in Kafka headers (assess whether your application relies on them before applying). In Spring Boot applications, setting spring.json.trusted.packages in consumer properties to an explicit comma-separated package list achieves the same effect via configuration. Kafka broker-level producer ACLs that restrict which clients can publish to consumer topics provide a strong compensating network control, but require ACL infrastructure already in place and do not address the root mapper trust issue. Do not rely solely on network-layer isolation if internal service accounts have broad producer permissions.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Spring for Apache Kafka's header mappers use the spring_json_header_types Kafka message header as a type hint to determine which Java classes to deserialize other message headers into. By design, both JsonKafkaHeaderMapper and DefaultKafkaHeaderMapper include the java.net package in their trusted packages list by default. A malicious producer can set this header to java.net.InetAddress and supply an attacker-controlled hostname as the header value; when the consumer's mapper processes the message, it deserializes the value as an InetAddress object, which triggers a DNS lookup. This is an unsafe deserialization pattern closely aligned with CWE-502 (Deserialization of Untrusted Data) and CWE-915 (Improperly Controlled Modification of Dynamically-Determined Object Attributes), though no CWE is officially assigned. The affected component is the spring-kafka library across versions 2.8.12 and earlier, 2.9.0-2.9.14, 3.0.0-3.3.16, 4.0.0-4.0.6, and 4.1.0. The flaw is introduced at the framework level, meaning every downstream @KafkaListener application inherits it without writing any vulnerable code.
Know when Java gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
Producer access to Kafka is often unauthenticated internally; impact is bounded to DNS/SSRF-class partial disclosure with no availability effect.
Primary rating from Vendor (vmware).
CVSS VectorVendor: vmware
DescriptionCVE.org
JsonKafkaHeaderMapper and DefaultKafkaHeaderMapper include java.net in their default trusted packages list. When these mappers are used - which is the default configuration for all @KafkaListener consumers - an external Kafka producer can inject a java.net.InetAddress type via the spring_json_header_types message header. Spring for Apache Kafka 4.1.0 Spring for Apache Kafka 4.0.0 - 4.0.6 Spring for Apache Kafka 3.0.0 - 3.3.16 Spring for Apache Kafka 2.9.0 - 2.9.14 Spring for Apache Kafka 2.8.12 and earlier
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m
Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti
Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent
Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug
JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up
Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up
The WLS Security component in Oracle WebLogic Server 10.3.6.0, 12.1.2.0, 12.1.3.0, and 12.2.1.0 allows remote attackers
Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow
Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla
The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during
EUVD-2026-66850
GHSA-f6gf-8w3m-3498
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB