Skip to main content

amqp091-go EUVDEUVD-2026-95161

| CVE-2026-107386 MEDIUM
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-10-08 GitHub_M GHSA-w6r9-248c-frg8
6.3
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Operate or compromise AMQP broker peer
  2. Delivery
    Vulnerable Go client connects via Open
  3. Exploit
    Send body-frame header with huge declared length
  4. Execution
    Client pre-allocates attacker-selected memory
  5. Impact
    Out-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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

amqp091-go 1.13.0, < 1.14.0

Affected Packages

go github.com/rabbitmq/amqp091-go fix: 1.14.0
euvd amqp091_go_1_13_0 fix: 1.14.0

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

Vendor (GitHub_M) PRIMARY 6.3 MEDIUM
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
vuln.today AI 5.3 MEDIUM

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
4.0 AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
Red Hat 5.9 MEDIUM

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Oct 08, 2026 - 20:03 EUVD

DescriptionCVE.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

EPSS Score
0.5%
Top 60% exploitable
Prevalence
Medium
official RabbitMQ Go client, common in Go services using RabbitMQ
Threat Intel
1
1 source
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2026-57219 HIGH POC
8.7 Jul 10

Sensitive credential disclosure in RabbitMQ affects installations running the management plugin with OAuth 2 configured

CVE-2019-11287 HIGH POC
7.5 Nov 23

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

CVE-2026-63335 MEDIUM POC
6.3 Aug 18

Denial of service in the RabbitMQ Java client library (com.rabbitmq:amqp-client ≤ 5.30.0) allows a malicious or compromi

CVE-2016-9877 CRITICAL
9.8 Dec 29

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.

CVE-2026-77411 CRITICAL
9.5 Sep 16

Parsing desynchronization in the RabbitMQ amqp091-go AMQP 0.9.1 client library before 1.13.0 lets a malicious or comprom

CVE-2026-77405 CRITICAL
9.4 Sep 16

RabbitMQ's amqp091-go Go client library, in all versions before 1.13.0, builds TLS configuration from amqps:// URIs with

CVE-2021-32718 MEDIUM POC
5.4 Jun 28

RabbitMQ is a multi-protocol messaging broker. Rated medium severity (CVSS 5.4), this vulnerability is remotely exploita

CVE-2026-67404 CRITICAL
9.2 Sep 23

RabbitMQ brokers that use the OAuth2 plugin can silently fall back to disabled TLS certificate verification when no CA b

CVE-2026-77408 CRITICAL
9.1 Sep 16

Silent AMQP 0.9.1 metadata corruption in the RabbitMQ amqp091-go Go client library prior to 1.13.0 lets an application t

CVE-2026-67231 CRITICAL
9.1 Sep 23

TLS client-authentication bypass in the RabbitMQ trust-store plugin lets a remote unauthenticated attacker whose forged

CVE-2026-63336 MEDIUM POC
5.1 Aug 18

TLS certificate validation is completely bypassed in the RabbitMQ Java client library (`com.rabbitmq:amqp-client`) prior

CVE-2026-77412 HIGH
8.9 Sep 16

Denial of service in the official RabbitMQ Go client library amqp091-go (versions prior to 1.13.0): a malicious, comprom

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy