ZeroHour

CVE-2026-75516

mass

Remote Memory-Exhaustion DoS in RabbitMQ Java Client (amqp-client)

CVSS 4.0
8.7 high
EPSS
Published
()
Modified
AI analysis

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.

Affected
RabbitMQ (VMware/Broadcom) RabbitMQ Java client library (com.rabbitmq:amqp-client)All versions prior to 5.34.0 (fixed in 5.34.0)
Estimated exposure
massmillions of Java/JVM application deployments (amqp-client is the de facto standard Java AMQP client distributed via Maven Central and bundled with Spring… — amqp-client is pulled in transitively by Spring Boot/Spring AMQP and a vast number of enterprise JVM applications, implying an installed base in the millions, though only clients that reach attacker-controlled AMQP servers or unencrypted…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

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 news

No ingested article mentions this CVE yet.