Description
kafka-python prior to 2.3.2 contains a denial-of-service vulnerability in the protocol parser that allows a malicious broker or machine-in-the-middle attacker to exhaust memory or hang connections by sending a crafted 4-byte frame length value without bounds validation. Attackers can send a specially crafted frame length through the receive_bytes() function to trigger either a multi-gigabyte memory allocation or an uncaught ValueError that leaves the connection in a broken state, causing requests to hang and consumers to stop heartbeating until restart.
Problem types
CWE-789 Memory Allocation with Excessive Size Value
Product status
Any version before 2.3.2
Credits
Katriel Moses
References
www.vulncheck.com/...ervice-via-protocol-parser-frame-length
github.com/dpkp/kafka-python/pull/3019
github.com/dpkp/kafka-python/pull/3026
github.com/...ommit/6e4831444f972d169cdd11f5c8d50333cea3f19b