Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconObtain Kafka producer credentials (PR:L)
-
DeliveryConnect to target Kafka cluster
-
ExploitProduce records with unique random spring.kafka.serialization.selector headers
-
InstallConsumer caches each unique selector without eviction
-
C2JVM heap grows unbounded
-
ExecuteGC thrash triggers OutOfMemoryError
-
ImpactConsumer process crashes (DoS)
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The application must explicitly opt into Spring for Apache Kafka's DelegatingDeserializer - this is not the default configuration, so deployments using standard StringDeserializer, JsonDeserializer, or other non-delegating implementations are not vulnerable. The attacker must hold authenticated Kafka producer credentials (PR:L per CVSS vector) with write access to at least one topic that the target consumer subscribes to. No special platform, OS, or additional configuration beyond the DelegatingDeserializer opt-in is required. Exploitation is limited by: (1) the authentication barrier for Kafka producer access, (2) the non-default nature of DelegatingDeserializer, and (3) the scoped blast radius - only the JVM process running the consumer is affected, not other services or the Kafka broker itself. There is no user interaction requirement and no constraint on the network path beyond reachability to the Kafka cluster. |
| Impact | The CVSS base score of 6.5 (Medium) is broadly accurate for this class of vulnerability. The vector AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H indicates the attack is network-reachable, requires no special conditions or user interaction, but does require low-privilege authentication (PR:L) - meaning the attacker must be an authenticated Kafka producer with write access to a topic the target consumer is subscribed to. This is a meaningful barrier in well-secured environments but is trivially satisfied in multi-tenant Kafka clusters or cases where producer credentials are broadly distributed. No KEV listing and no public exploit code identified at time of analysis, making this unlikely to be opportunistically exploited at scale currently; however, the attack is straightforward to implement manually without sophisticated tooling. The impact is scoped to the consumer JVM process (S:U), so the blast radius is limited to availability of the consuming application rather than infrastructure-wide impact. The combination of low attack complexity and high availability impact means that once an attacker has producer credentials, exploitation is reliable. Priority should be highest for internet-exposed Kafka consumers or multi-tenant deployments where producer trust boundaries are weak. |
| Exploit ScenarioDerived | An attacker with authenticated Kafka producer credentials - for instance, a compromised microservice or a malicious tenant in a shared Kafka cluster - writes a high-volume stream of records to a topic consumed by a target Spring application using DelegatingDeserializer. Each record carries a different randomly generated spring.kafka.serialization.selector header value, causing the consumer to accumulate unbounded cache entries on its JVM heap. Over time, heap exhaustion triggers increasingly severe GC pauses and ultimately an OutOfMemoryError, crashing the consumer process. No public exploit code has been identified at time of analysis, but the attack requires only standard Kafka producer APIs and is trivially scriptable. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 10, 2026
Unbounded heap growth in Spring for Apache Kafka's DelegatingDeserializer allows an authenticated network producer to trigger a Denial of Service against any consumer application that opts into this deserializer. By flooding the consumer with Kafka records carrying unique, randomized spring.kafka.serialization.selector header values, an attacker forces unbounded cache growth on the consumer's JVM heap, ultimately inducing GC thrash and OutOfMemoryError. No public exploit identified at time of analysis, and this is not listed in the CISA KEV catalog, but the low-complexity, network-accessible attack surface warrants prompt remediation for affected deployments.
RemediationAI
The vendor advisory at https://spring.io/security/cve-2026-41726 should be consulted for confirmed fixed versions, as no explicit patch release versions were included in the input data; based on the affected ranges, versions beyond 4.0.5, 3.3.15, 3.2.13, 2.9.13, and 2.8.11 respectively are the expected fix targets but this must be verified against the advisory before upgrading. If immediate upgrade is not possible, the most actionable compensating control is to avoid opting into DelegatingDeserializer altogether - replacing it with a static deserializer implementation eliminates the vulnerable code path entirely, with the trade-off that dynamic deserialization dispatch based on record headers will no longer be available. If DelegatingDeserializer is operationally required, restricting Kafka producer ACLs to only fully trusted internal services limits the attacker population that can deliver malicious headers, though this does not eliminate the vulnerability. Additionally, JVM heap monitoring and alerting on abnormal growth, combined with consumer process restart automation, can reduce the operational impact of an exploit but should not be treated as a substitute for patching.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in maven, 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 DelegatingDeserializer is a pluggable deserialization facility that uses the spring.kafka.serialization.selector Kafka record header to dynamically dispatch to different deserializer implementations at runtime. The root cause is CWE-770 (Allocation of Resources Without Limits or Throttling): the framework caches or registers entries for each unique selector header value it encounters but applies no eviction policy, cap, or validation on these entries. Because header values are producer-controlled and unbounded, an adversary with producer access can inject arbitrarily large numbers of unique strings into this cache structure, growing the JVM heap without limit until garbage collection is unable to reclaim sufficient memory. The affected component is present across five major release lines of the Spring for Apache Kafka library, a widely used integration layer between Spring Boot/Framework applications and Apache Kafka. The CVSS vector (AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H) confirms this is a pure availability impact with no confidentiality or integrity consequence.
Know when Spring For Apache Kafka 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:L/UI:N/S:U/C:N/I:N/A:H
Primary rating from Vendor (vmware).
CVSS VectorVendor: vmware
Lifecycle Timeline
2DescriptionCVE.org
When an application opts into DelegatingDeserializer, a producer can grow the consumer's heap without bound by sending records with unique random spring.kafka.serialization.selector header values, eventually causing GC thrash and OutOfMemoryError.
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.
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
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Related Vulnerabilities in Spring Kafka Deserialization and Validation Flaws
View all 3More in Spring For Apache Kafka
View allIn Spring for Apache Kafka 3.0.9 and earlier and versions 2.9.10 and earlier, a possible deserialization attack vector e
Denial-of-service in Spring for Apache Kafka's `DeadLetterPublishingRecovererFactory` exposes consumer JVMs across all s
Header type injection in Spring for Apache Kafka's default mapper configuration allows any Kafka producer with access to
EUVD-2026-35903
GHSA-xvfq-4q6q-gxx7
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB