Apache Kafka: Kafka Streams StreamThread hang from integer overflow in stream-time punctuation
Summary
| CVE | CVE-2026-111496 |
|---|---|
| State | PUBLISHED |
| Assigner | apache |
| Source Priority | CVE Program / NVD first with legacy fallback |
| Published | 2026-10-28 17:17:39 UTC |
| Updated | 2026-10-28 20:17:18 UTC |
| Description | Kafka Streams derives its stream-time clock from record timestamps. PunctuationSchedule.next() computed the next punctuation time as timestamp + (intervalsMissed + 1) * interval with no overflow check. A record with a timestamp at or near Long.MAX_VALUE advances stream time to that value, so the next stream-time punctuation overflows to a negative time. PunctuationQueue then re-queues that time and loops on it indefinitely while holding a lock, stalling the StreamThread. Impact: A single record is enough. The affected StreamThread stops processing, and because the record stays in the topic the hang returns on restart; an application whose partitions are all affected becomes unresponsive. Only the Streams application is affected, not the brokers or the cluster. Triggering it needs write access to a source topic whose topology uses stream-time punctuation, and a broker that stores the record: brokers from Apache Kafka 4.0.0 reject such a timestamp by default (log.message.timestamp.after.max.ms, one hour), so it is reachable only on older brokers or where that bound has been relaxed. Mitigation: Upgrade Kafka Streams to 4.2.2, 4.3.2, or 4.4.0. As defense in depth, keep log.message.timestamp.after.max.ms bounded on source topics and restrict write access to them. Resolution: From Apache Kafka 4.2.2, 4.3.2, and 4.4.0: the next punctuation time is computed with overflow-checked arithmetic (clamped to Long.MAX_VALUE), and a rescheduled punctuation is re-queued only when its time moves forward. |
Risk And Classification
Problem Types: CWE-190 | CWE-835 | CWE-190 CWE-190 Integer overflow or wraparound | CWE-835 CWE-835 Loop with unreachable exit condition ('infinite loop')
Vendor Declared Affected Products
| Source | Vendor | Product | Version | Platforms |
|---|---|---|---|---|
| CNA | Apache Software Foundation | Apache Kafka | affected 1.1.0 4.1.2 semver | Not specified |
| CNA | Apache Software Foundation | Apache Kafka | affected 4.2.0 4.2.1 semver | Not specified |
| CNA | Apache Software Foundation | Apache Kafka | affected 4.3.0 4.3.1 semver | Not specified |
References
| Reference | Source | Link | Tags |
|---|---|---|---|
| kafka.apache.org/cve-list | [email protected] | kafka.apache.org | |
| www.openwall.com/lists/oss-security/2026/10/28/14 | af854a3a-2127-422b-91ae-364da2661108 | www.openwall.com | |
| CVE Program record | CVE.ORG | www.cve.org | canonical |
| NVD vulnerability detail | NVD | nvd.nist.gov | canonical, analysis |
Vendor Comments And Credit
Discovery Credit
CNA: Mike Read (GitHub: Michael-JRead) (en)
CNA: Matthias J. Sax <[email protected]> (en)
There are currently no legacy QID mappings associated with this CVE.