Skip to main content

Spring for Apache Kafka CVE-2026-59278

| EUVDEUVD-2026-66850 MEDIUM
Server-Side Request Forgery (SSRF) (CWE-918)
2026-08-27 security@vmware.com GHSA-f6gf-8w3m-3498
6.5
CVSS 3.1 · Vendor: vmware
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain Kafka producer credentials or access to target topic
  2. Delivery
    Craft message with spring_json_header_types: java.net.InetAddress header
  3. Exploit
    Deliver message to subscribed Kafka topic
  4. Execution
    @KafkaListener DefaultKafkaHeaderMapper processes header
  5. Persist
    InetAddress deserialization triggers DNS resolution
  6. Impact
    Attacker 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Spring For Apache Kafka 4.0.0 ≤4.0.6
Spring For Apache Kafka 4.1.0
Spring For Apache Kafka 0 ≤2.8.12
Spring For Apache Kafka 3.0.0 ≤3.3.16
Spring For Apache Kafka 2.9.0 ≤2.9.14

Affected Packages

euvd spring_for_apache_kafka no fix

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

Vendor (vmware) PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
vuln.today AI 6.5 MEDIUM

Producer access to Kafka is often unauthenticated internally; impact is bounded to DNS/SSRF-class partial disclosure with no availability effect.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
Red Hat 6.5 MEDIUM

Primary rating from Vendor (vmware).

CVSS VectorVendor: vmware

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None

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

EPSS Score
0.2%
Top 95% exploitable
Prevalence
High
widely-used library across enterprise Java microservices and event-driven architectures
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact· derived
High
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

More in Java

View all
CVE-2012-4681 CRITICAL POC
9.8 Aug 28

Oracle Java SE 7 Update 6 and earlier contains multiple sandbox bypass vulnerabilities via the ClassFinder and forName m

CVE-2015-7450 CRITICAL POC
9.8 Jan 02

Remote code execution in IBM Sterling B2B Integrator, Sterling Integrator, and Tivoli Common Reporting allows unauthenti

CVE-2013-2465 CRITICAL POC
9.8 Jun 18

Java Runtime Environment sandbox bypass via incorrect image channel verification in 2D component allows remote unauthent

CVE-2011-3544 CRITICAL POC
9.8 Oct 19

Oracle Java SE JDK/JRE 7 and 6 Update 27 and earlier allows remote code execution with complete system compromise throug

CVE-2010-1871 HIGH POC
8.8 Aug 05

JBoss Seam 2 in Red Hat JBoss EAP 4.3.0 fails to sanitize JBoss Expression Language inputs, allowing remote attackers to

CVE-2012-1723 CRITICAL POC
9.8 Jun 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 update 4 and earlier, 6 up

CVE-2013-0422 CRITICAL POC
9.8 Jan 10

Multiple vulnerabilities in Oracle Java 7 before Update 11 allow remote attackers to execute arbitrary code by (1) using

CVE-2012-0507 CRITICAL POC
9.8 Jun 07

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 2 and earlier, 6 Up

CVE-2015-4852 CRITICAL POC
9.8 Nov 18

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

CVE-2012-5076 CRITICAL POC
9.8 Oct 16

Unspecified vulnerability in the Java Runtime Environment (JRE) component in Oracle Java SE 7 Update 7 and earlier allow

CVE-2017-3066 CRITICAL POC
9.8 Apr 27

Remote unauthenticated attackers can execute arbitrary code on Adobe ColdFusion servers through Java deserialization fla

CVE-2012-0391 CRITICAL POC
9.8 Jan 08

The ExceptionDelegator component in Apache Struts before 2.2.3.1 interprets parameter values as OGNL expressions during

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy