Mend.io Vulnerability Database
The largest open source vulnerability database
What is a Vulnerability ID?
New vulnerability? Tell us about it!
CVE-2026-111551
Published:October 28, 2026
Updated:November 02, 2026
Several Kafka deserialization paths read a size or count field from input data and use it directly to allocate an array, collection, or byte buffer, with no check against the bytes actually available. A small crafted input can therefore declare a very large size and force a multi-gigabyte allocation. The affected paths are, in Kafka Streams, ProcessorRecordContext (header count), ChangedDeserializer (varint value length), CombinedKeySchema (foreign-key length, which could also produce a negative size), ProcessorMetadata (key length), and AssignmentInfo group-assignment decoding; and, in the clients library, ListDeserializer (used by ListSerde). Impact: An attacker can trigger the oversized allocation and raise an OutOfMemoryError that crashes the affected consumer or Kafka Streams thread; the broker and the rest of the cluster are unaffected. The reachable surface depends on the path: writing a crafted record to a Streams application's internal changelog or repartition topics, or committing crafted offset metadata to its consumer group (Streams internal paths); writing a crafted record to any topic that a consumer reads with ListSerde (ListDeserializer); or, as a member of a Streams consumer group, returning crafted assignment data when elected leader (AssignmentInfo). Because a crafted record remains in its topic, the error can recur on restart. The record size limit (max.message.bytes) does not help, because the allocation is driven by a size field rather than by the input's length. Mitigation: Upgrade to Apache Kafka 4.2.2, 4.3.2, or 4.4.0. Where authorization is enabled, restrict write access to each application's internal topics and consumer group to its own principal, and restrict who can produce to topics that are consumed with ListSerde. Resolution: From Apache Kafka 4.2.2, 4.3.2, and 4.4.0: these deserialization paths validate the declared size against the remaining input before allocating and reject input that fails the check.
Affected Packages
https://github.com/apache/kafka.git (GITHUB):
Affected version(s) >=4.2.0-rc0 <4.2.2
Fix Suggestion:
Update to version 4.2.2
https://github.com/apache/kafka.git (GITHUB):
Affected version(s) >=4.3.0-rc0 <4.3.2
Fix Suggestion:
Update to version 4.3.2
org.apache.kafka:kafka-clients (JAVA):
Affected version(s) =4.3.0 <4.3.1
Fix Suggestion:
Update to version 4.3.1
org.apache.kafka:kafka-clients (JAVA):
Affected version(s) >=4.2.0 <4.2.2
Fix Suggestion:
Update to version 4.2.2
org.apache.kafka:kafka-streams (JAVA):
Affected version(s) >=4.2.0 <4.2.2
Fix Suggestion:
Update to version 4.2.2
org.apache.kafka:kafka-streams (JAVA):
Affected version(s) >=4.3.0 <4.3.2
Fix Suggestion:
Update to version 4.3.2
Do you need more information?
Contact Us
CVSS v4
Base Score:
7.1
Attack Vector
NETWORK
Attack Complexity
LOW
Attack Requirements
NONE
Privileges Required
LOW
User Interaction
NONE
Vulnerable System Confidentiality
NONE
Vulnerable System Integrity
NONE
Vulnerable System Availability
HIGH
Subsequent System Confidentiality
NONE
Subsequent System Integrity
NONE
Subsequent System Availability
NONE
CVSS v3
Base Score:
6.5
Attack Vector
NETWORK
Attack Complexity
LOW
Privileges Required
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Weakness Type (CWE)
Uncontrolled Resource Consumption
Improper Input Validation
Memory Allocation with Excessive Size Value
EPSS
Base Score:
0.22