Skip to main content
No exploitation reportedAwaiting NVD analysis

CVE-2026-111551

Apache Kafka: Denial of service in Kafka Streams and client deserializers via unbounded memory allocation

No exploitation reported by the sources we read.

  • Published2026-10-28
  • WeaknessCWE-20 · CWE-400 · CWE-789

Am I affected?

With a domain, we read the version its public headers and pages expose. A distribution build can carry the fix under an older number.

Description

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.

Timeline

dates in UTC
  1. 2026-10-2816:45CVE publishedCNA

Versions per branch

Products declared by the CNA2 products

As apache, the CNA that assigned this CVE, declared them in the CVE record; versions as written.

  • Apache Software Foundation Apache Kafkaother versions: not affected

    package org.apache.kafka:kafka-streamshttps://repo.maven.apache.org/maven2

    Affected
    • ≥ 0.10.0.0, ≤ 4.1.2no fix statedsemver
    • ≥ 4.2.0, ≤ 4.2.1no fix statedsemver
    • ≥ 4.3.0, ≤ 4.3.1no fix statedsemver
  • Apache Software Foundation Apache Kafkaother versions: not affected

    package org.apache.kafka:kafka-clientshttps://repo.maven.apache.org/maven2

    Affected
    • ≥ 0.10.0.0, ≤ 4.1.2no fix statedsemver
    • ≥ 4.2.0, ≤ 4.2.1no fix statedsemver
    • ≥ 4.3.0, ≤ 4.3.1no fix statedsemver

Source: the CNA record (CVE Program), © The MITRE Corporation,CVE Terms of UseCVE recordupdated 2026-10-28

Distribution builds and vendor advisories

Packages from OSV.dev and products from the vendors' CSAF advisories.

version not verifiedVersions not verified: read as OSV.dev and the vendors publish them, not checked against each vendor's release list.

Packages

  • kafkaUbuntu:Pro:18.04:LTSall versions · no fixed version listed

Vendor advisories

  • CVE-2026-111551 Red Hat Product Security10 known affected

    org.apache.kafka/kafka-streams: org.apache.kafka/kafka-clients: Apache Kafka: Denial of Service via memory exhaustion during deserialization

    kafka-clients as a component of Red Hat build of Apache Camel 4 for Quarkus 3 · kafka-clients as a component of Red Hat build of Apache Camel for Spring Boot 4 · kafka-clients as a component of Red Hat build of Apicurio Registry 3 · +7 more

Full record on NVD

Fix

  1. Workaround from the vendor Red Hat Product Security CVE-2026-111551 · 10 productsUpgrade to Apache Kafka 4.2.2, 4.3.2, or 4.4.0. The flaw is in the kafka-streams and kafka-clients libraries; the broker is not affected. The max.message.bytes record size limit does not prevent this, because the allocation is driven by a size field read from the record rather than by the record's …
  2. No fix available, says the vendor Red Hat Product Security CVE-2026-111551 · 2 productsFix deferred
  3. No fix available, says the vendor Red Hat Product Security CVE-2026-111551 · 8 productsAffected

Detection

Nuclei template
none so far
ProjectDiscovery
Exploit-DB
no entry
Exploit-DB
Proof of concept
Metasploit modules
none listed
Metasploit Framework

Sources

Identifiers

Technical details

CVSS v3 Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Published
2026-10-28
Last Modified
2026-11-05
NVD status
Awaiting Analysis
GitHub Advisory
GHSA-fpf4-qx46-w5rg

Frequently asked questions

What is CVE-2026-111551?

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.

Is CVE-2026-111551 actively exploited?

Active exploitation of CVE-2026-111551 has not been confirmed. Its EPSS score was 0.2% on 2026-11-05, the estimated probability of exploitation in the next 30 days.

What is the CVSS score for CVE-2026-111551?

CVE-2026-111551 has a CVSS v3 base score of 7.5 (HIGH severity), with vector string CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H.

Running kafka-streams? Hear about its next vulnerability

Surveillance reads the versions in your stack — a domain, a lockfile or a list — checks each CVE against the ranges its sources publish, and alerts you when one you run is exploited or enters CISA KEV. A version it cannot read stays « version not verified ».

No credit card required · No monthly cap on website lookups · 250 API requests/month

Sources for this record