CVE-2026-77406
moderateMemory-exhaustion DoS via Qos integer wraparound in RabbitMQ amqp091-go
The RabbitMQ amqp091-go library (the official Go AMQP 0.9.1 client) fails to validate values passed to Channel.Qos before casting signed integers to unsigned uint16/uint32 fields, a signed-to-unsigned conversion error (CWE-195). Versions prior to 1.13.0 wrap negative values such as -1 into extremely large prefetch limits (65535 or 4294967295) instead of rejecting them. Exploitation requires an application that lets untrusted input configure these Qos values; an attacker who can set a negative prefetchCount or prefetchSize causes the client to accept massive prefetch limits, letting the broker flood it with queued messages until client memory is exhausted and message processing is disrupted (denial of service, with limited impact on downstream systems). Any Go application embedding amqp091-go before 1.13.0 is vulnerable in principle, but only those exposing Qos settings to untrusted control are realistically exploitable, which the CVSS attack-requirements metric reflects. No public proof-of-concept, CISA KEV listing, or confirmed in-the-wild exploitation is known.
What to do: Upgrade github.com/rabbitmq/amqp091-go to version 1.13.0 or later, which restores Qos validation. In the meantime, audit your dependency tree (go.mod) for the library and reject or clamp negative prefetchCount/prefetchSize values at the application layer, especially where Qos settings come from user- or API-supplied configuration. Treat this primarily as a client-side denial-of-service risk; brokers and message data are not directly compromised.
| RabbitMQ amqp091-go (Go AMQP 0.9.1 client library) | All versions prior to 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.Qos in channel.go accepts negative prefetchCount and prefetchSize integers and casts them directly to uint16 and uint32 fields in the basic.qos method because validateQos is absent. Values such as -1 therefore wrap to 65535 or 4294967295 instead of being rejected. An application that permits untrusted configuration of these Qos values can unintentionally request extremely large prefetch limits, allowing a broker to deliver enough queued messages to exhaust client memory and disrupt processing. This issue is fixed in version 1.13.0.
- Weakness
- CWE-195
- 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:L/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.