ZeroHour

CVE-2026-77411

large

AMQP 0-9-1 parser desync in RabbitMQ amqp091-go Go client library (< 1.13.0)

CVSS 4.0
9.5 critical
EPSS
Published
()
Modified
AI analysis

RabbitMQ's amqp091-go, the standard Go client library for the AMQP 0-9-1 messaging protocol, contains an improper error-handling flaw (CWE-754): before version 1.13.0, readLongstr in read.go returns an empty string and a nil error when a declared long-string length exceeds 0x7FFFFFFF, instead of returning ErrSyntax. A malicious or compromised broker can supply a table field with such an oversized longstr; readTable treats the failed read as successful and continues parsing from the wrong byte offset, desynchronizing the connection. Attacker-controlled trailing bytes are then misinterpreted as later table fields or protocol frames, disrupting connection integrity and availability — CVSS 4.0 scores this critical (9.5), though exploitation requires the client to be connected to a hostile broker. Any Go application built with amqp091-go prior to 1.13.0 is affected, particularly those connecting to third-party, multi-tenant, or otherwise not-fully-trusted AMQP endpoints. No public proof-of-concept is known, the flaw is not in CISA's KEV, and no exploitation has been reported.

What to do: Upgrade to amqp091-go 1.13.0 or later and rebuild all Go binaries that link the library; audit go.mod, vendored copies, and dependency trees for versions below 1.13.0. Until patched, restrict clients to brokers you fully control and treat connections to third-party or shared AMQP services as untrusted. Prioritize patching applications that talk to external or multi-tenant brokers, since broker compromise or malice is the prerequisite for exploitation.

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 tens of thousands of deployed Go applications embed vulnerable versions (exact install count unknown) — amqp091-go is the de facto standard Go AMQP 0-9-1 client (successor to the widely used streadway/amqp) with thousands of dependent Go projects and millions of module-proxy downloads, so vulnerable copies are plausibly embedded in tens of…

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, readLongstr in read.go returns an empty string and a nil error when a declared AMQP longstr length exceeds 0x7FFFFFFF instead of returning ErrSyntax. The function leaves the declared field bytes unread, while readTable treats the operation as successful and continues parsing from the wrong offset. A malicious or compromised broker can provide an oversized longstr in a table field and desynchronize subsequent AMQP parsing, causing attacker-controlled trailing bytes to be interpreted as later fields or frames and disrupting connection integrity and availability. This issue is fixed in version 1.13.0.

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