CVE-2026-61634
UnknownCVSS 0.0Exploitation Probability (EPSS)
Low risk22th percentile - higher than 22% of all known CVEs
Summary
The RabbitMQ Java client library before version 5.33.0 does not consistently apply the negotiated frame_max limit when validating broker-controlled frame payload lengths. A malicious broker can send a frame larger than allowed, causing the client to allocate and decode an invalid frame instead of rejecting it, leading to connection disruption and client-side denial of service.
Risk Assessment
A malicious broker can disrupt applications using the RabbitMQ Java client, leading to service unavailability.
Recommendation
Update the RabbitMQ Java client library to version 5.33.0 or later.
Other vulnerabilities in RabbitMQ Java client
See all- CVE-2026-106123Medium
The RabbitMQ Java client library prior to 5.35.0 includes the raw URI value in wrapped exceptions when AMQP URI parsing fails. Because the URI may contain a plaintext username and password, broker credentials can be disclosed through startup logs, monitoring systems, CI logs, and copied stack traces.
- CVE-2026-106122High
The RabbitMQ Java client library prior to 5.36.0 incorrectly decodes malformed UTF-8 bytes in ValueReader.readShortstr into replacement characters that re-encode beyond the AMQP shortstr limit. An attacker can submit an RPC message with a malformed property, causing an unchecked exception before acknowledgement and repeated message requeueing that disables consumers.
- CVE-2026-106121Medium
The RabbitMQ Java client library prior to 5.37.0 has a flaw in com.rabbitmq.tools.json.JSONReader.read() that fails to terminate when input ends inside a quoted string or line comment. The default DefaultJsonRpcMapper can then exhaust the heap or consume CPU indefinitely, resulting in denial of service.
- CVE-2026-75516High
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.
- CVE-2026-69220High
RabbitMQ Java client library before 5.33.1 allows recursive calls to ValueReader.readFieldValue for AMQP types F and A without a nesting-depth limit. A malicious AMQP server or network intermediary can send about 580 nested table levels in the pre-authentication connection.start frame, causing StackOverflowError and terminating the client input processing thread, leading to denial of service.
- CVE-2026-69219High
RabbitMQ Java client library before 5.33.1 uses ValueReader.readBytes to accept a wire-declared contentLength below Integer.MAX_VALUE and allocate a byte array before checking the bytes available in the frame. A malicious AMQP peer can send a LongString field with type tag S and a declared length such as 0x7FFFFFFE, causing an approximately 2 GB allocation and OutOfMemoryError, potentially terminating the JVM and causing denial of service.
- CVE-2026-63337High
RabbitMQ Java client library before 5.33.0 passes a javaReturnType value from an untrusted system.describe response to Class.forName with initialization enabled. An attacker able to answer the JsonRpcClient request can select a class already present in the victim JVM and trigger its static initializer, potentially affecting confidentiality, integrity, and availability in the client process.
- CVE-2026-63336Medium
The RabbitMQ Java client library allows Java and JVM-based applications to connect to and interact with RabbitMQ nodes. Prior to 5.33.0, com.rabbitmq.client.ConnectionFactory.useSslProtocol() and ConnectionFactory.useSslProtocol(String) configure com.rabbitmq.client.TrustEverythingTrustManager and leave hostname verification disabled, causing arbitrary server certificates, including self-signed certificates, to be accepted. A network attacker able to intercept a TLS connection can impersonate the RabbitMQ broker, read protected AMQP traffic, and modify traffic without certificate or hostname validation. The fix changes the production TLS helpers to use the JVM default trust store and enables hostname verification, while retaining an explicitly named development-only no-verification helper. This issue is fixed in version 5.33.0.
- CVE-2026-63335Medium
The RabbitMQ Java client library allows Java and JVM-based applications to connect to and interact with RabbitMQ nodes. Prior to 5.31.0, inbound AMQP command assembly in src/main/java/com/rabbitmq/client/impl/CommandAssembler.java processes a content-bearing method and header whose remainingBodyBytes value is smaller than a following AMQP.FRAME_BODY payload. CommandAssembler.consumeBodyFrame subtracts the peer-controlled payload length before validating that it fits, drives remainingBodyBytes negative, and throws a raw UnsupportedOperationException instead of MalformedFrameException. A malicious or compromised broker peer can send this malformed sequence on an open nonzero channel to terminate frame processing and close the client connection, causing denial of service for work using that connection. This issue is fixed in version 5.31.0.
Original NVD description (English source)
The RabbitMQ Java client library allows Java and JVM-based applications to connect to and interact with RabbitMQ nodes. Prior to 5.33.0, the AMQP connection tuning path records the negotiated AMQP frame_max value, but src/main/java/com/rabbitmq/client/impl/SocketFrameHandler.java and NettyFrameHandlerFactory continue to validate broker-controlled frame payload lengths against maxInboundMessageBodySize because the negotiated limit is not applied consistently through setMaxInboundFramePayloadSize. A malicious or compromised broker can send a method frame larger than the negotiated frame_max during or after connection establishment, causing the client to allocate and decode a protocol-invalid frame instead of rejecting it with MalformedFrameException. The protocol violation can disrupt the affected connection and cause client-side denial of service. This issue is fixed in version 5.33.0.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

