Advisory [CVE-2026-111108] Apache Kafka's code-generated protocol readers pre-size an array's collection from the element count declared by the sender
This security Apache Software Foundation advisory covers CVE-2026-111108 affecting Apache Kafka.
Aggregated and source-linked by VulniPulse. Data sources, validation and limitations.
VulniPulse record published Record updated
Get an email when Apache Software Foundation publishes the next one.
VulniPulse checks Apache Software Foundation's security advisories around the clock and emails you new ones with the severity, the fixed version and the vendor's link. First month free, then US$15/month; we email you before the first charge.
Summary
Apache Kafka's code-generated protocol readers pre-size an array's collection from the element count declared by the sender.
That count is checked only against the bytes remaining in the request buffer, which assumes about one byte per element; because most elements need several bytes, a request can declare far more elements than the buffer holds and still pass.
For a keyed array the reader then allocates an ImplicitLinkedHashCollection of capacity (2 * count +1), so a request of a few tens of megabytes can force a heap allocation several times larger before any element is read. The pattern is emitted into every generated reader, so it affects all Kafka API types with an array field.
Impact:
Request parsing happens before any authorization check. On a listener that does not require authentication (for example PLAINTEXT), an unauthenticated attacker can send a few concurrent requests that each declare a very large=
array length and allocate many times their wire size in broker heap, crashing the broker with an OutOfMemoryError. The reporter demonstrated three concurrent ~90 MB ProduceRequest (v3) connections exhausting a 1 GB heap (~8x amplification).
On listeners that require authentication, the attacker needs valid credentials but no specific ACL, since parsing precedes authorization..
- Apache Kafka 3.3.0 through 4.1.2
- Apache Kafka 4.2.0 through 4.2.1
- Apache Kafka 4.3.0 through 4.3.1
Official advisory · medium-confidence parse· fetched 2 hours ago·verify at source
- 4.2.2
- 4.3.2
- 4.4.0
Official advisory · medium-confidence parse· fetched 2 hours ago·verify at source
Mitigation checklist
- Mitigation: Upgrade to Apache Kafka 4.2.2, 4.3.2, or 4.4.0.
- Until then, lowering socket.request.max.bytes and restricting network access to broker listeners reduces, but does not remove, exposure.
Official advisory · medium-confidence parse· fetched 2 hours ago·verify at source
More Apache Software Foundation advisories
- CVE-2026-114349Oct 28, 2026Apache Kafka: When a broker decodes a compressed record batch, the per-record decoder
- CVE-2026-112375Oct 28, 2026Apache Kafka: authenticated Kafka principal with no authorization grants
- CVE-2026-111551Oct 28, 2026Apache Kafka: Several Kafka deserialization paths read a size or count field from input
- CVE-2026-111496Oct 28, 2026Apache Kafka: Kafka Streams derives its stream-time clock from record timestamps
- CVE-2026-111115Oct 28, 2026Apache Kafka's code-generated readers for flexible protocol versions read a tagged-field
- CVE-2026-111073Oct 28, 2026Apache Kafka: The broker-side PushTelemetry API (KIP-714) validates only the compressed
Android app · Google Play
Monitor future Apache Software Foundation CVEs from your phone.
Choose a whole vendor or a precise platform, then receive matching security advisories by phone notification, email, or both. Coverage follows 34 official vendor sources and 160+ reviewed platform categories.
Discussion(0)
No comments yet. Share field notes, upgrade gotchas, or questions — verify against the vendor advisory before acting on community advice.
Sign in to join the discussion.