ZeroHour

CVE-2026-77410

large

Memory-exhaustion DoS in RabbitMQ amqp091-go Go AMQP client via malicious broker

CVSS 4.0
8.9 high
EPSS
Published
()
Modified
AI analysis

Channel.recvContent in channel.go of the RabbitMQ amqp091-go Go client preallocates the message body slice using the uint64 size declared in an AMQP content header, without capping the allocation to the negotiated Connection.Config.FrameSize. A malicious or compromised broker can therefore declare an extreme body size, causing the Go runtime to attempt a correspondingly huge allocation before any body data is actually received, and the resulting memory exhaustion can terminate the client process. An attacker who controls or compromises the broker gains denial of service only — there is no confidentiality or integrity impact, though downstream systems relying on the client's availability are also affected (CVSS 4.0 rates availability impact high). Any Go application built with amqp091-go before 1.13.0 that consumes messages from a broker is affected, with real-world exploitability contingent on the broker turning malicious or being compromised. No public proof-of-concept, CISA KEV listing, or confirmed in-the-wild exploitation is known.

What to do: Upgrade the github.com/rabbitmq/amqp091-go dependency to version 1.13.0 or later, then verify via go.mod, go list -m all, or govulncheck that no stale copies of older versions remain in the build. Until upgraded, limit consumers to trusted brokers over TLS, treat shared or multi-tenant broker environments as higher risk, and monitor client processes for abnormal memory growth. There is no configuration-only substitute for the fix, since the patched code caps the preallocation to the negotiated frame size.

Affected
RabbitMQ amqp091-go (Go AMQP 0-9-1 client library)all versions prior to 1.13.0 (fixed in 1.13.0)
Estimated exposure
largeplausibly hundreds of thousands of Go application deployments embed the library (estimate), though the exploitable subset is limited to consumers whose broker… — amqp091-go is the official RabbitMQ AMQP 0-9-1 Go client under the rabbitmq GitHub org and is a standard dependency in Go microservice stacks that use RabbitMQ, but because clients connect outbound to brokers it cannot be sized via…

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

Description

RabbitMQ amqp091-go is a Go AMQP 0.9.1 client. Prior to 1.13.0, Channel.recvContent in channel.go preallocates the message body slice with the uint64 ch.header.Size value supplied by an AMQP content header without capping the allocation to the negotiated Connection.Config.FrameSize value. A malicious or compromised broker can send an extreme declared body size and cause the Go runtime to attempt a correspondingly large allocation before body data is received. The allocation can exhaust memory and terminate the client process. This issue is fixed in version 1.13.0.

Weakness
CWE-789
Vector
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:H/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.