Executive brief
The RabbitMQ Java client is a library used by Java applications to communicate with RabbitMQ message brokers. The vulnerability allows a rogue or compromised broker to send frames larger than the size limit negotiated during connection setup. While the client records the negotiated frame_max value, it validates incoming payloads against a much larger internal limit instead, allowing protocol violations to go undetected. This could enable a malicious broker to crash clients or trigger unexpected behavior.
Technical details
The vulnerability is an improper input validation flaw (CWE-20) in the RabbitMQ Java client's socket inbound frame reader. During AMQP 0-9-1 connection tuning, the client correctly records the broker-negotiated frame_max size. However, when the socket reader validates incoming method frame payloads, it incorrectly checks them against maxInboundMessageBodySize (a much larger limit) instead of frame_max. This allows a broker to send a method frame with a payload exceeding frame_max, have it allocated and decoded, and complete the connection handshake instead of being rejected as a protocol violation. The attack requires network access to communicate with the client as a broker peer, with high attack complexity. The patch (version 5.33.0 and later) corrects the frame validation logic to properly enforce the negotiated frame_max limit.
Affected products
- RabbitMQ Java client < 5.33.0
Timeline
- 2026-07-09: disclosed: Published in GitHub Advisory Database
- 2026-07-09: patched: Fix available in version 5.33.0
- 2026-08-18: advisory: Advisory GHSA-5xwg-cfvj-gff5 published