ZeroHour

CVE-2026-77408

large

Integer overflow in RabbitMQ amqp091-go client silently corrupts AMQP message metadata

CVSS 4.0
9.1 critical
EPSS
Published
()
Modified
AI analysis

RabbitMQ's amqp091-go Go client library, prior to version 1.13.0, contains an integer overflow (CWE-190) in the writeShortstr function in write.go, which casts the byte length of AMQP 'shortstr' property values to uint8 without rejecting values longer than 255 bytes. If an application allows an oversized value to reach any shortstr field — CorrelationId, ReplyTo, MessageId, Expiration, UserId, AppId, ContentType, ContentEncoding, or Type, frequently data originating from user or upstream input — the length wraps and only a truncated prefix is serialized, with no error reported. An attacker who can influence these fields can therefore silently corrupt message metadata, breaking request/reply correlation, routing, tracing, and downstream message processing; CVSS 4.0 rates the confidentiality impact low but message integrity and availability impact high. Any Go application or service embedding amqp091-go before 1.13.0 to communicate with RabbitMQ is affected regardless of broker version, since the flaw is in the client-side serializer. No exploitation has been reported, no public proof-of-concept is known, and the issue is not listed in CISA's KEV catalog.

What to do: Upgrade to amqp091-go v1.13.0 or later and rebuild and redeploy every Go service that embeds the library (patching the RabbitMQ broker alone does not fix this). As an interim mitigation, validate before publishing that the byte length of CorrelationId, ReplyTo, MessageId, Expiration, UserId, AppId, ContentType, ContentEncoding, and Type values never exceeds 255 bytes, especially when these fields are derived from user or third-party input. Also review Go-based consumers and request/reply flows for unexplained correlation or routing failures, which would indicate past silent truncation.

Affected
RabbitMQ amqp091-go (Go AMQP 0-9-1 client library)all versions prior to 1.13.0 (< 1.13.0); fixed in 1.13.0
Estimated exposure
large~100,000 Go services and applications embedding the library (estimate; no public install telemetry) — amqp091-go is the successor to streadway/amqp and the de facto standard Go client for RabbitMQ, one of the most widely deployed open-source message brokers, so the number of Go applications embedding a pre-1.13.0 release is plausibly on…

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, the writeShortstr function in write.go casts the byte length of AMQP shortstr property values to uint8 without first rejecting values longer than 255 bytes. An application that accepts an oversized CorrelationId, ReplyTo, MessageId, Expiration, UserId, AppId, ContentType, ContentEncoding, or Type value can therefore serialize a wrapped length and only a truncated prefix, while reporting no error. The resulting silent metadata corruption can break request and reply correlation, routing, tracing, and downstream message processing. This issue is fixed in version 1.13.0.

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