CVE-2026-77410
largeMemory-exhaustion DoS in RabbitMQ amqp091-go Go AMQP client via malicious broker
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.
| RabbitMQ amqp091-go (Go AMQP 0-9-1 client library) | all versions prior to 1.13.0 (fixed in 1.13.0) |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
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 news0 stories
No ingested article mentions this CVE yet.