CVE-2026-114349: Apache Kafka: Denial of service via unbounded memory allocation when decoding compressed record batches
Severity: important
Affected versions:
- Apache Kafka 0.11.0.0 through 4.1.2
- Apache Kafka 4.2.0 through 4.2.1
- Apache Kafka 4.3.0 through 4.3.1
Description:
When a broker decodes a compressed record batch, the per-record
decoder reads a declared body size from the decompressed stream and
allocates a buffer of that size before validating it against the bytes
available or any configured limit. The size is attacker-controlled,
and the batch CRC does not constrain it, so a small (around 90-byte),
CRC-valid compressed produce request can declare a body size of up to
about 2 GiB and force the broker to attempt that allocation, raising
OutOfMemoryError. The record size limit (max.message.bytes), the
request size limit, and client/broker quotas bound only the compressed
wire size, not the declared decompressed size.
Impact:
An authenticated principal with Write on a topic can crash broker
request-handler threads (reached when a batch's codec differs from ...