Spring for Apache Kafka Arbitrary JDK Type Deserialization
Severe, but no confirmed exploitation yet. Schedule remediation in your next patch cycle and apply mitigations if you're exposed.
An unauthenticated attacker, remotely over the network, with no user interaction, can fully compromise the system — steal data, tamper with it and take it offline.
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.
Inferred from the weakness type (CWE) and how the flaw is reached — the techniques an attacker would chain to exploit this. Real-world corroboration appears here as threat intel is folded in.
Generated by Wavense from the CVE record — an immediate mitigation and the permanent fix.
Before patching, reconfigure Kafka header mappers to use an explicit allow-list for specific trusted classes rather than relying on broad package prefix checks, if the configuration permits. Implement strict input validation on all incoming Kafka header values, especially for type-related headers, to filter out any suspicious or unexpected content. Additionally, deploy network segmentation or access control lists to restrict Kafka producer access to only trusted and authenticated sources.
The permanent resolution requires upgrading Spring for Apache Kafka to a patched version that addresses the insecure prefix matching vulnerability. Affected users should upgrade to Spring for Apache Kafka 4.0.6+, 3.3.16+, 3.2.14+, 2.9.14+, or 2.8.12+. These updates ensure proper validation of type headers, preventing arbitrary JDK type deserialization and mitigating the risk of RCE.
A malicious Kafka producer can supply crafted header values that exploit the prefix-based trust mechanism in header mappers, leading to the consumer deserializing arbitrary JDK types. This can result in remote code execution (RCE), denial of service, or information disclosure on the consumer application. Such an exploit severely compromises the integrity, confidentiality, and availability of the affected system and its data.
Other CVEs affecting fuse
Apache Shiro before 1.2.5, when a cipher key has not been configured for the "remember me" feature, allows remote attackers to execute arbitrary code or bypass intended access restrictions via an unspecified request parameter.
The Groovy scripting engine in Elasticsearch before 1.3.8 and 1.4.x before 1.4.3 allows remote attackers to bypass the sandbox protection mechanism and execute arbitrary shell commands via a crafted script.
In Apache Log4j 2.x before 2.8.2, when using the TCP socket server or UDP socket server to receive serialized log events from another application, a specially crafted binary payload can be sent that, when deserialized, can execute arbitrary code.
A flaw was found in the Undertow HTTP server core, which is used in WildFly, JBoss EAP, and other Java applications. The Undertow library fails to properly validate the Host header in incoming HTTP requests.As a result, requests containing malformed or malicious Host headers are processed without rejection, enabling attackers to poison caches, perform internal network scans, or hijack user sessions.
A flaw was found in Undertow. When Undertow receives an HTTP request where the first header line starts with one or more spaces, it incorrectly processes the request by stripping these leading spaces. This behavior, which violates HTTP standards, can be exploited by a remote attacker to perform request smuggling. Request smuggling allows an attacker to bypass security mechanisms, access restricted information, or manipulate web caches, potentially leading to unauthorized actions or data exposure.
A flaw was found in Undertow. This vulnerability allows a remote attacker to construct specially crafted requests where header names are parsed differently by Undertow compared to upstream proxies. This discrepancy in header interpretation can be exploited to launch request smuggling attacks, potentially bypassing security controls and accessing unauthorized resources.
A flaw was found in Undertow. A remote attacker can exploit this vulnerability by sending `\r\r\r` as a header block terminator. This can be used for request smuggling with certain proxy servers, such as older versions of Apache Traffic Server and Google Cloud Classic Application Load Balancer, potentially leading to unauthorized access or manipulation of web requests.
A flaw was found in the Dynamic Client Registration (DCR) component of Keycloak, an identity and access management solution. The default DCR policy fails to properly validate the claim path for User Property mappers, allowing them to write values to sensitive internal claim locations. An attacker with a standard user account and a limited Initial Access Token can exploit this to forge administrative roles in their access token. This allows the attacker to take over other clients, steal confidential secrets, and potentially gain full administrative control over the realm.