Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessOperate or compromise AMQP broker peer
-
DeliveryVulnerable Go client connects via Open
-
ExploitSend body-frame header with huge declared length
-
ExecutionClient pre-allocates attacker-selected memory
-
ImpactOut-of-memory termination of client process
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires the vulnerable client (amqp091-go 1.13.0 through pre-1.14.0) to initiate a connection via the public Open function to an AMQP peer that is attacker-controlled, compromised, or MITM'd - the malicious server sends a body-frame header with an oversized declared payload length during the handshake. The flaw is reachable even when Config.FrameSize is set to the protocol minimum, and it triggers before connection.tune negotiation and before authentication complete, so client credentials and broker-side auth do not limit it. LIMITING FACTOR: the attacker must occupy the broker/peer role (no exploitation by arbitrary off-path network attackers), so clients that only connect to trusted, controlled brokers are not realistically exposed; impact is confined to availability of the client process (OOM/crash), with no data exposure or code execution. |
| Impact | Overall a MEDIUM real-world risk. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N) scores 6.3 and is self-consistent with the description: the only impact is availability (VA:L), with no confidentiality or integrity effect, i.e. this is a pure denial-of-service / uncontrolled-resource-allocation flaw (CWE-770). The key differentiator is AT:P (attack requirement present): exploitation is not opportunistic against arbitrary internet hosts - the attacker must BE the AMQP peer the client connects to, i.e. operate a rogue/malicious broker, compromise a legitimate one, or MITM the connection. No EPSS score was provided (exploitation probability unknown), the CVE is NOT in CISA KEV (no confirmed active exploitation), and no public exploit code was identified - the only source-code artifact supplied is the fix PR #377, not a weaponized POC. Signals are therefore consistent rather than conflicting: a medium-CVSS DoS with a meaningful trust-boundary precondition and no evidence of exploitation. Realistic priority is elevated for Go services that connect to untrusted, third-party, or multi-tenant brokers (the pre-authentication trigger means credentials/TLS client auth do NOT mitigate it), and lower for deployments where clients only ever reach a trusted, controlled internal broker. Note the vulnerable window is before connection.tune and before authentication, so this is not gated by valid credentials. |
| Exploit ScenarioDerived | An attacker who runs a malicious AMQP broker, has compromised a legitimate one, or can MITM the connection waits for a vulnerable Go service using amqp091-go 1.13.x to connect via the public Open API. During the handshake - before connection.tune negotiation and before authentication complete - the server returns a short body-frame header declaring a very large payload length, causing the client to pre-allocate attacker-chosen memory and crash via out-of-memory. No public exploit code is known; the fix PR #377 documents the vulnerable allocation path. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 08, 2026
Denial of service in the RabbitMQ amqp091-go AMQP 0.9.1 client library (1.13.0 through pre-1.14.0) lets a malicious or compromised AMQP peer force the client to allocate attacker-chosen amounts of memory during the handshake. The peer only needs to send a short body-frame header with a large declared payload length: because the pre-negotiation maxFrameSize value is stored as zero - a state indistinguishable from 'unlimited' - the earlier frame-size mitigation is bypassed and ReadFrame allocates based on the declared length before the payload arrives, before connection.tune completes, and before authentication, even when Config.FrameSize is set to the protocol minimum. Overall a MEDIUM real-world risk with unauthenticated remote triggering, but exploitation is limited to clients that connect via the public Open function to an attacker-controlled, compromised, or MITM'd broker, and the impact is confined to client availability (memory pressure, OOM termination, process loss) with no data exposure or code execution; no public exploit identified at time of analysis.
RemediationAI
Primary fix: upgrade to amqp091-go v1.14.0, the vendor-released patch, which seeds maxFrameSize with frameMinSize in Open before the reader goroutine starts (see https://github.com/rabbitmq/amqp091-go/releases/tag/v1.14.0, PR https://github.com/rabbitmq/amqp091-go/pull/377, commit 6723e8cff8710f0a6bf5fb4af375e285052535b3, advisory GHSA-w6r9-248c-frg8). Because the vulnerability is in the client and triggers inside Open before tune, there is no in-application configuration workaround: raising or lowering Config.FrameSize does not help. Specific compensating controls until the dependency is bumped: backport the upstream change by initializing the maxFrameSize atomic to the 4096-byte frameMinSize immediately after constructing the Connection in your own vendored fork (this changes only pre-tune behavior, and any application relying on pre-tune frames larger than 4096 bytes, which the specification disallows, would break); restrict the client to trusted brokers with no attacker-influenceable path, and use TLS with certificate verification (optionally pinning the broker certificate or CA) to prevent a MITM from impersonating the broker, accepting the operational cost of certificate rotation and the fact that pinning can cause outages on legitimate broker re-issuance; enforce network egress allowlists so the Go process can only reach sanctioned AMQP endpoints, which reduces but does not eliminate exposure when the broker itself is compromised; and cap the process with a memory limit (container cgroup limit or GOMEMLIMIT) so an oversized allocation fails fast and bounds blast radius on the host, with the trade-off that the client process is still terminated rather than recovering the connection.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in go, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
amqp091-go implements the AMQP 0.9.1 wire protocol in Go. AMQP frames carry a fixed 7-byte header (frame type, channel, and declared payload size) followed by the payload, and during the connection lifecycle the peer's maximum frame size is negotiated in the connection.tune method, with the specification imposing a 4096-byte ceiling (frameMinSize) beforehand. In the affected builds, Connection.maxFrameSize is an atomic value whose zero default is used ambiguously for both the not-yet-negotiated state and the negotiated-unlimited state, so the reader's frame-size check is effectively disabled until tune completes. This is CWE-770 (Allocation of Resources Without Limits or Throttling): the body-frame parser trusts the declared payload length in the header and sizes a buffer from it before receiving the payload and before the frame's protocol state can be validated, so a well-formed-looking short header with an enormous declared length produces an oversized allocation. The upstream fix (PR #377, commit 6723e8cff8710f0a6bf5fb4af375e285052535b3, released as v1.14.0) stores frameMinSize into maxFrameSize inside Open, before the reader goroutine starts, and adds unit tests asserting that maxFrameSize is initialized to frameMinSize and is never left at zero; the affected package is tracked by the CPE cpe:2.3:a:rabbitmq:amqp091-go:*:*:*:*:*:*:*:*.
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:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
Availability-only DoS so C:N/I:N/A:L; attacker must be the AMQP peer but needs no privileges on the client and the trigger is pre-auth, so PR:N and AC:L over a network vector.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
amqp091-go is a Go AMQP 0.9.1 client. From 1.13.0 until 1.14.0, the frame-size mitigation from the prior allocation advisory can be bypassed before connection.tune completes because Connection.maxFrameSize uses zero for both the not-yet-negotiated and negotiated-unlimited states. A malicious or compromised AMQP peer can send a short body-frame header with a large declared payload length, causing ReadFrame and the body-frame parser to allocate attacker-selected memory before the payload is received or the frame's protocol state is rejected. The condition is reachable through public Open even when Config.FrameSize is set to the protocol minimum and can cause severe memory pressure, out-of-memory termination, or loss of the client process before authentication completes. This issue is fixed in version 1.14.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
Denial of service in the RabbitMQ Java client library (com.rabbitmq:amqp-client ≤ 5.30.0) allows a malicious or compromi
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
EUVD-2026-95161
GHSA-w6r9-248c-frg8
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB