CVE-2026-75516
massRemote Memory-Exhaustion DoS in RabbitMQ Java Client (amqp-client)
The RabbitMQ Java client library (amqp-client) before 5.34.0 fails to enforce the configured maxInboundMessageBodySize cap when the AMQP frame_max negotiated during Connection.Tune is zero (unlimited), which is also the client default, because zero is later interpreted as Integer.MAX_VALUE (CWE-770, allocation of resources without limits). A malicious AMQP server, or a man-in-the-middle able to alter Connection.Tune and inject frames into the connection, can send oversized frames of any type, which Frame.readFrom() allocates into memory before any content-level validation. This allows the attacker to exhaust heap memory and terminate the client JVM process, yielding a high-availability-impact denial of service with no confidentiality or integrity impact (CVSS 4.0 8.7). Any Java or JVM application using the vulnerable client against untrusted AMQP endpoints, or over connections not protected by TLS, is affected, while clients talking to legitimate RabbitMQ brokers over TLS are largely not exposed. There is currently no sign of exploitation: the flaw is not in CISA KEV and no public proof-of-concept is known.
What to do: Upgrade amqp-client to 5.34.0 or later and audit dependency trees (e.g., mvn dependency:tree | grep amqp-client) since it is commonly a transitive dependency of spring-boot-starter-amqp. Until patched, connect only to trusted AMQP servers and enforce TLS, which eliminates the man-in-the-middle attack path. Treat unexplained memory-exhaustion crashes in client applications as a possible exploitation indicator.
| RabbitMQ (VMware/Broadcom) RabbitMQ Java client library (com.rabbitmq:amqp-client) | All versions prior to 5.34.0 (fixed in 5.34.0) |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
The RabbitMQ Java client library allows Java and JVM-based applications to connect to and interact with RabbitMQ nodes. Prior to 5.34.0, AMQConnection.start() applies Math.min(maxInboundMessageBodySize, frameMax) after Connection.Tune negotiation even though AMQP defines frameMax value zero as unlimited and ConnectionFactory.DEFAULT_FRAME_MAX is zero. When the client default and server-negotiated value are both zero, the result is passed to Utils.framePayloadLimit(int), which interprets zero as Integer.MAX_VALUE and disables the configured maxInboundMessageBodySize cap. A malicious AMQP server, or a man-in-the-middle attacker able to modify Connection.Tune and inject frames into the connection, can then send an oversized frame of any frame type, causing Frame.readFrom() to allocate a large byte array before content-level validation and potentially terminate the client process through memory exhaustion. This issue is fixed in version 5.34.0.
- Weakness
- CWE-770
- Vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
In the news0 stories
No ingested article mentions this CVE yet.