Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAttacker operates or compromises RabbitMQ broker
-
DeliveryJava client connects and opens active channel
-
ExploitBroker sends Basic.Deliver method frame on non-zero channel
-
InstallBroker sends content header declaring 1-byte body
-
C2Broker sends oversized body frame (2+ bytes)
-
ExecuteCommandAssembler drives remainingBodyBytes negative, throws UnsupportedOperationException
-
ImpactAMQConnection main loop catches throwable and performs hard connection shutdown
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
|
| Exploitation Conditions | Exploitation requires the RabbitMQ Java client to have an open, active AMQP connection to a broker that the attacker controls or has compromised - the malformed frame must originate from the broker side of the connection, not from the Java application or an arbitrary third party. The malformed sequence must be sent on a non-zero (active) channel; channel 0 (the connection control channel) is handled separately and does not route through the vulnerable CommandAssembler path for content-bearing frames. The attack is therefore limited to three scenarios: (1) the broker itself is malicious or fully compromised at the process level, (2) a man-in-the-middle can inject raw AMQP frames on an unencrypted AMQP connection (port 5672), or (3) a client misconfiguration routes traffic to a rogue broker. Connections using TLS with strict server certificate validation substantially limit scenario 2. No default configuration of the Java client prevents this attack once a connection is established to a hostile broker. The setMaxInboundMessageBodySize parameter does not serve as a compensating control because the vulnerability lies in the ordering of subtraction versus validation within consumeBodyFrame. |
| Impact | The CVSS 4.0 score of 6.3 (Medium) with vector AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:N/SC:N/SI:N/SA:H correctly frames the impact: the vulnerable system (the library itself) suffers no direct confidentiality or integrity loss, but the subsequent system - the Java application relying on the connection - loses high availability when its connection is forcibly torn down. PR:L reflects that exploitation requires an established, authenticated AMQP connection to a broker the attacker controls or has compromised, meaningfully limiting the attack surface compared to unauthenticated network attacks. No EPSS score was provided for independent comparison. The absence of a CISA KEV entry indicates no confirmed active exploitation at time of analysis, though a PoC is referenced in the GHSA advisory (poc.zip), which lowers the barrier for opportunistic testing. The realistic threat actors are: a supply-chain-compromised or insider-controlled RabbitMQ broker, a rogue broker reachable due to misconfiguration, or a man-in-the-middle on unencrypted AMQP connections. Organizations whose Java clients connect exclusively to internally managed, trusted brokers face low practical risk; those routing clients through shared, external, or cloud-managed brokers face meaningfully higher exposure. |
| Exploit ScenarioDerived | An attacker who controls a rogue RabbitMQ broker (or has compromised a legitimate one) waits for a Java application to establish a connection and open a channel. Once a non-zero channel is active, the broker sends a Basic.Deliver method frame followed by a content header declaring exactly 1 byte of body, then immediately sends a body frame containing 2 bytes. CommandAssembler subtracts 2 from remainingBodyBytes (value 1), driving it to -1, hits the UnsupportedOperationException stub, and AMQConnection shuts down the entire connection, terminating all in-flight work. A PoC demonstrating this three-frame sequence is referenced in the GHSA advisory (poc.zip). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 18, 2026
Denial of service in the RabbitMQ Java client library (com.rabbitmq:amqp-client ≤ 5.30.0) allows a malicious or compromised AMQP broker to forcibly terminate any active client connection by sending a crafted malformed frame sequence. The flaw in CommandAssembler.consumeBodyFrame subtracts a peer-controlled body-frame payload length before validating it fits within the declared body size, driving remainingBodyBytes negative and triggering an unhandled UnsupportedOperationException - a legacy stub - rather than a proper MalformedFrameException, causing AMQConnection to perform a hard connection shutdown. A PoC is referenced in the GHSA advisory; no active exploitation is confirmed in CISA KEV.
RemediationAI
Upgrade com.rabbitmq:amqp-client to version 5.31.0 or later, which introduces a pre-subtraction bounds check in consumeBodyFrame that throws a proper MalformedFrameException when a body frame payload exceeds the remaining declared body size, preventing the UnsupportedOperationException from propagating. The fix is delivered via PRs #1959 and #1960 (https://github.com/rabbitmq/rabbitmq-java-client/pull/1959 and https://github.com/rabbitmq/rabbitmq-java-client/pull/1960) and released at https://github.com/rabbitmq/rabbitmq-java-client/releases/tag/v5.31.0. If an immediate upgrade is not feasible, restrict client TLS configuration to enforce mutual certificate authentication against known, internally controlled brokers - this prevents rogue or MITM brokers from establishing a connection in the first place. Note that the setMaxInboundMessageBodySize setting alone does not block this attack vector because the malformed body frame bypasses the header-level size check via the subtraction-before-validation ordering bug. Disabling AMQP on unencrypted ports (default 5672) and enforcing TLS-only connections (5671) reduces the MITM attack surface but does not protect against a legitimately compromised broker.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in maven, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The RabbitMQ Java client implements AMQP 0-9-1 for JVM-based applications (CPE: cpe:2.3:a:rabbitmq:rabbitmq-java-client:*:*:*:*:*:*:*:*). Inbound frames are parsed by SocketFrameHandler.readFrame and assembled into commands by CommandAssembler. For content-bearing methods such as Basic.Deliver, the protocol requires a content header frame followed by one or more body frames. CommandAssembler.consumeHeaderFrame records the broker-declared body size in remainingBodyBytes after only checking it against the configured maximum. The CWE-20 (Improper Input Validation) root cause is in consumeBodyFrame (CommandAssembler.java lines 145-151): the received payload length is subtracted from remainingBodyBytes before any validation that it fits, so a body frame whose payload exceeds the declared size drives the counter negative. The code then reaches a legacy stub that throws UnsupportedOperationException('%%%%%% FIXME unimplemented'), which propagates uncaught through AMQConnection's main loop (AMQConnection.java lines 695-705), triggering connection failure handling and full shutdown instead of a clean AMQP CONNECTION.CLOSE. This issue was discovered as a follow-on to the same class of frame-handling weakness identified in CVE-2017-15699.
Know when Rabbitmq gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:N/SC:N/SI:N/SA:H
Network vector since the broker communicates remotely; PR:L because an established authenticated connection is required; S:C and A:H because the client application loses its connection entirely, but no confidentiality or integrity impact occurs.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
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.
Blast Radius
ecosystem impact- 51 maven packages depend on com.rabbitmq:amqp-client (9 direct, 42 indirect)
Ecosystem-wide dependent count for version 5.31.0.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Sensitive credential disclosure in RabbitMQ affects installations running the management plugin with OAuth 2 configured
Pivotal RabbitMQ, versions 3.7.x prior to 3.7.21 and 3.8.x prior to 3.8.1, and RabbitMQ for Pivotal Platform, 1.16.x ver
An issue was discovered in Pivotal RabbitMQ 3.x before 3.5.8 and 3.6.x before 3.6.6 and RabbitMQ for PCF 1.5.x before 1.
Parsing desynchronization in the RabbitMQ amqp091-go AMQP 0.9.1 client library before 1.13.0 lets a malicious or comprom
RabbitMQ's amqp091-go Go client library, in all versions before 1.13.0, builds TLS configuration from amqps:// URIs with
RabbitMQ is a multi-protocol messaging broker. Rated medium severity (CVSS 5.4), this vulnerability is remotely exploita
RabbitMQ brokers that use the OAuth2 plugin can silently fall back to disabled TLS certificate verification when no CA b
Silent AMQP 0.9.1 metadata corruption in the RabbitMQ amqp091-go Go client library prior to 1.13.0 lets an application t
TLS client-authentication bypass in the RabbitMQ trust-store plugin lets a remote unauthenticated attacker whose forged
TLS certificate validation is completely bypassed in the RabbitMQ Java client library (`com.rabbitmq:amqp-client`) prior
Denial of service in the official RabbitMQ Go client library amqp091-go (versions prior to 1.13.0): a malicious, comprom
Memory-exhaustion denial of service in the official RabbitMQ Go AMQP 0.9.1 client library (amqp091-go) prior to 1.13.0 l
EUVD-2026-61040
GHSA-qx7j-jv8m-fppr
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB