CVE-2026-77411: RabbitMQ amqp091-go: Protocol Desynchronization and Frame Injection via Integer Overflow in readLongstr

Published Sep 16, 2026
·
Updated

Summary

A critical stream desynchronization vulnerability has been identified in the AMQP wire-protocol parser. When parsing a long string (readLongstr) within a table field, providing a length that exceeds the maximum signed 32-bit integer (2^31 - 1, or roughly 2.1 GiB) triggers an improper error-handling condition. The parser abruptly aborts the read and returns a success status ("",nil) without consuming the specified bytes from the underlying network buffer. This causes all subsequent read operations to become misaligned. The parser interprets arbitrary offsets within the remaining payload bytes as valid AMQP frame headers, leading to potential Remote Code Execution (RCE), data injection, or complete connection hijacking.

Vulnerability Details

The vulnerability exists within the bounds-checking logic of the readLongstr function: go // read.go:113-114 — silent no-op return, bytes left in stream if length > (^uint32(0) >> 1) { return // returns "", nil, does NOT consume length bytes } When length evaluates to a value greater than 0x7FFFFFFF:

1. The function executes a silent return statement. 2. Because Go utilizes named or zero-value initialization for unassigned return registers, this yields "", nil (indicating a successful read of an empty string). 3. The Critical Failure: The reader's cursor is not advanced by length bytes. The malformed payload remains sitting in the TCP/buffer stream.

Impact

As readTable continues iterating over the stream under the assumption that the string was successfully parsed, the byte alignment is entirely broken.

- Parser Desynchronization: Future AMQP frame headers are read from arbitrary offsets inside the attacker-controlled message payload. - Payload Reinterpretation: A malicious actor can carefully craft the trailing bytes of the initial payload to perfectly mimic valid AMQP frames (e.g., connection.close, channel.open, or message publishing frames), forcing the client/server to execute unintended actions.

Other sources

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.

— MITRE

Affected Software

5 affected componentsFixes available
amqp091-go<1.13.0
go/github.com/rabbitmq/amqp091-go<1.13.0
1.13.0
ubuntu/golang-github-rabbitmq-amqp091-go*
ubuntu/golang-github-rabbitmq-amqp091-go*
ubuntu/golang-github-rabbitmq-amqp091-go*

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade go/github.com/rabbitmq/amqp091-go to a version that resolves this vulnerability.

    Fixed in 1.13.0
  2. Upgrade

    Upgrade RabbitMQ amqp091-go to a version that resolves this vulnerability.

    Fixed in 1.13.0
  3. Compensating control

    Assume a potentially compromised broker could desynchronize the AMQP parser; mitigate impact by isolating AMQP clients (e.g., network segmentation / restrict broker access) until all clients are upgraded to RabbitMQ amqp091-go v1.13.0.

Event History

Sep 16, 2026
CVE Published
via MITRE·02:45 PM
Data Sourced
via MITRE·02:45 PM
DescriptionWeakness
Data Sourced
via Red Hat·02:53 PM
DescriptionSeverityAffected Software
Data Sourced
via OSV·03:17 PM
DescriptionSeverityAffected Software
Data Sourced
via NVD·03:17 PM
DescriptionSeverityWeakness
Sep 17, 2026
Advisory Published
via GitHub·05:04 PM
Data Sourced
via GitHub·05:04 PM
DescriptionWeaknessAffected Software

Frequently Asked Questions

1

Which deployments are exposed to this issue?

Applications using the RabbitMQ amqp091-go client before version 1.13.0 are affected. Exploitation requires the client to process AMQP data from a malicious or compromised broker.

2

What does an attacker need to send to trigger the parsing failure?

The broker must supply an AMQP table field containing a longstr whose declared length exceeds 0x7FFFFFFF. The client then leaves the field bytes unread and parses subsequent attacker-controlled bytes at the wrong offset.

3

What is the practical impact of successful exploitation?

Subsequent AMQP data can be desynchronized, allowing trailing bytes to be interpreted as later fields or frames. This can disrupt connection integrity and availability.

4

What should be done to remediate the issue?

Upgrade amqp091-go to version 1.13.0, which fixes the handling of oversized longstr lengths.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203