ZeroHour

CVE-2026-77406

moderate

Memory-exhaustion DoS via Qos integer wraparound in RabbitMQ amqp091-go

CVSS 4.0
8.2 high
EPSS
Published
()
Modified
AI analysis

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.

Affected
RabbitMQ amqp091-go (Go AMQP 0.9.1 client library)All versions prior to 1.13.0
Estimated exposure
moderate≈1,000–10,000 applications (widely embedded Go client, but only apps passing untrusted Qos values are exploitable) — amqp091-go is the standard RabbitMQ client for the Go ecosystem and is embedded in a large number of services and infrastructure tools, but actual exploitability is gated on the uncommon pattern of exposing prefetch/Qos configuration to…

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

No ingested article mentions this CVE yet.