Skip to content

← Public intelligence

Go package

github.com/rabbitmq/amqp091-go

Open actionable advisories and recorded vendor fixes. This public package view has no inventory attached and cannot establish whether your deployment is affected. A vendor fix never resolves your finding; verify your installed version and the source guidance.

Open advisories

11 actionable advisories, newest first. Withdrawn advisories and news are excluded. Coverage is partial.

  1. Medium, CVSS 6.3GoAmendedPublished

    amqp091-go: Pre-negotiation frame limit is not enforced to 4KB

    CVE-2026-107386 · GHSA-w6r9-248c-frg8

    Affected
    • Go github.com/rabbitmq/amqp091-go < 1.14.0
    Fixed in
    1.14.0· Vendor fix available
    Issue
    The frame-size mitigation released in amqp091-go v1.13.0 can be bypassed before connection.tune completes. A malicious or compromised AMQP peer can send only a seven-byte body-frame header containing a large attacker-controlled uint32 payload length. The client allocates a slice of that declared length before it verifies that the payload exists or rejects the frame for its invalid protocol state. The bypass occurs because Connection.maxFrameSize starts at zero. The reader interprets zero as both “negotiated unlimited” and “not negotiated yet,” and skips the pre-allocation size check in either case. Open starts the reader goroutine before negotiation and does not store a limit until after it receives connection.tune. This remains reachable even if the caller explicitly uses Config{FrameSize: frameMinSize}. A malicious broker can therefore cause excessive memory allocation, potentially terminating the Go client process through memory exhaustion, before authentication and…

    Recommended action: Upgrade to 1.14.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)osv.dev (2)github.com (3)Source checked Evidence →
  2. High, CVSS 8.9GoAmendedPublished

    RabbitMQ amqp091-go: Denial of Service via Malicious Field Length in AMQP Client

    CVE-2026-77412 · GHSA-4v58-74mf-rjx3

    Affected
    • Go github.com/rabbitmq/amqp091-go < 1.13.0
    Fixed in
    1.13.0· Vendor fix available
    Issue
    A vulnerability in the readField function allows a malicious or compromised AMQP server to trigger an unhandled runtime panic in the client application, leading to an immediate crash of the entire process. Details When parsing incoming AMQP frames, the readField function processes byte-array fields (type tag 'x') by reading a 32-bit big-endian integer to determine the length of the data payload. If a server transmits a length value of 0xFFFFFFFF, it is interpreted by the client as a signed 32-bit integer with a value of -1. Passing a negative integer to Go's built-in make() function for slice allocation triggers an unrecoverable runtime panic (panic: len out of range). Because the reader goroutine handles network I/O without an explicit recover() wrapper, this panic propagates up to the runtime root, abruptly terminating the host application. Attack Vector / Exploitation Scenario An attacker capable of spoofing, compromising, or controlling an AMQP broker can exploit this…

    Recommended action: Upgrade to 1.13.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)osv.dev (2)github.com (3)Source checked Evidence →
  3. Critical, CVSS 9.5GoAmendedPublished

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

    CVE-2026-77411 · GHSA-c5pq-fr2g-9jpf

    Affected
    • Go github.com/rabbitmq/amqp091-go < 1.13.0
    Fixed in
    1.13.0· Vendor fix available
    Issue
    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: 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…

    Recommended action: Upgrade to 1.13.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)osv.dev (2)github.com (3)Source checked Evidence →
  4. High, CVSS 8.9GoAmendedPublished

    RabbitMQ amqp091-go: Resource Exhaustion (OOM) via Unbounded Body Buffer Allocation

    CVE-2026-77410 · GHSA-r9c8-gcjp-xfwh

    Affected
    • Go github.com/rabbitmq/amqp091-go < 1.13.0
    Fixed in
    1.13.0· Vendor fix available
    Issue
    A flaw in the recvContent function allows a malicious AMQP server to trigger an Out-of-Memory (OOM) error, forcing the host operating system or container runtime to immediately terminate the client process. Vulnerability Details When receiving message content payloads, the client processes the expected size from the content header framework. The recvContent function attempts to optimize performance by pre-allocating memory for the message body based on the ch.header.Size field, which is a 64-bit unsigned integer (uint64). The underlying library fails to validate or cap this requested size against any upper boundary—such as the maximum frame size negotiated during connection establishment (FrameMax). If a server specifies an extreme body size (e.g., 2^62 bytes), the Go runtime attempts to allocate an exabyte-scale slice capacity. This immediately exhausts available system memory, causing the operating system's OOM killer to terminate the application. Attack Vector /…

    Recommended action: Upgrade to 1.13.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)osv.dev (2)github.com (3)Source checked Evidence →
  5. Critical, CVSS 9.1GoAmendedPublished

    RabbitMQ amqp091-go: Silent Data Truncation and State Corruption via Shortstr Integer Overflow

    CVE-2026-77408 · GHSA-j497-x9hr-x34x

    Affected
    • Go github.com/rabbitmq/amqp091-go < 1.13.0
    Fixed in
    1.13.0· Vendor fix available
    Issue
    A data integrity and protocol corruption vulnerability exists in the AMQP client's property serialization logic. When encoding AMQP short string (shortstr) fields—such as identifiers, routing strings, and content metadata—the length of the string is explicitly cast to a fixed-size 8-bit unsigned integer (uint8). If an application provides a property string exceeding 255 bytes, the length counter silently wraps around (e.g., a length of 300 wraps to 44). As a result, the parser writes only a truncated portion of the string into the outgoing connection buffer without returning an error. This leads to silent data corruption, broken RPC routing, and unpredictable broker-side state behavior. --- Vulnerability Details Mechanism The vulnerability resides in the wire-level serialization logic for application publishing properties: Because Go allows silent integer truncation during explicit type casting, lengths larger than $2^8 - 1$ lose their most significant bits. The underlying…

    Recommended action: Upgrade to 1.13.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)osv.dev (2)github.com (3)Source checked Evidence →
  6. High, CVSS 7.0GoAmendedPublished

    RabbitMQ amqp091-go: Plaintext Credential Exposure via Exported PLAIN Authentication Struct Fields

    CVE-2026-77407 · GHSA-27gv-rfvv-22mv

    Affected
    • Go github.com/rabbitmq/amqp091-go < 1.13.0
    Fixed in
    1.13.0· Vendor fix available
    Issue
    An information disclosure vulnerability exists in the AMQP client implementation's authentication handling configuration. Following a successful connection handshake, the Connection.Config.SASL field stores the Authentication implementation state used to establish the session. For standard PLAIN authentication, this state utilizes the PlainAuth struct, which defines both Username and Password as publicly exported, plaintext string fields. Because this sensitive data is retained permanently in-memory within an exported field structure, any peripheral code, internal package, reflective logger, dependency, or automated debugging utility with access to the core Connection object can read and expose the raw credentials. --- Vulnerability Details Mechanism The vulnerability stems from the structural design of the configuration storage used during and after the AMQP handshake: When an application initializes a connection, the PlainAuth object is deeply nested inside the…

    Recommended action: Upgrade to 1.13.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)osv.dev (2)github.com (3)Source checked Evidence →
  7. High, CVSS 8.2GoAmendedPublished

    RabbitMQ amqp091-go: Consumer Message Flooding via Signed-to-Unsigned Integer Casting in Qos Configuration

    CVE-2026-77406 · GHSA-rm6m-hrcw-jw33

    Affected
    • Go github.com/rabbitmq/amqp091-go < 1.13.0
    Fixed in
    1.13.0· Vendor fix available
    Issue
    A logic and resource exhaustion vulnerability exists in the AMQP client's Quality of Service (Qos) configuration method. The Qos function accepts signed integers (int) for the prefetchCount and prefetchSize parameters but casts them directly to unsigned integers (uint16 and uint32, respectively) when formatting the wire-level frame. If a developer passes a negative integer (such as -1) to these parameters—frequently intended as a sentinel value meaning "no change" or "no limit"—the application performs an implicit signed-to-unsigned conversion. This wraps the values to their absolute maximum limit ($65535$ and $4294967295$). Consequently, a consumer expecting restricted message delivery rates is suddenly flooded with an unlimited volume of messages, potentially exhausting memory resources and crashing the application. --- Vulnerability Details Mechanism The bug manifests during the structural assignment inside the channel's Qos method: In Go, converting a negative signed…

    Recommended action: Upgrade to 1.13.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)osv.dev (2)github.com (3)Source checked Evidence →
  8. Critical, CVSS 9.4GoAmendedPublished

    RabbitMQ amqp091-go: Missing Explicit TLS Minimum Version Configuration In URI Parser

    CVE-2026-77405 · GHSA-33mj-cw25-m34h

    Affected
    • Go github.com/rabbitmq/amqp091-go < 1.13.0
    Fixed in
    1.13.0· Vendor fix available
    Issue
    A structural security weakness exists in the AMQP client's TLS configuration generator (tlsConfigFromURI). When constructing a tls.Config object from an amqps:// connection URI, the library initializes the structure without explicitly defining the MinVersion field. While modern versions of the Go compiler toolchain (Go 1.18+) default the implicit minimum version to TLS 1.2, this security posture relies entirely on an implicit toolchain dependency. If the library is compiled using legacy Go toolchains (Go < 1.18), or if a future toolchain introduces fallback behavior, the client could silently negotiate obsolete and insecure TLS 1.0 or TLS 1.1 protocols during connection handshakes with a compromised or malicious AMQP broker. --- Vulnerability Details Mechanism The vulnerability lies in the lack of an explicit safety floor when assigning configurations inside the URI component: In the Go standard library (crypto/tls), leaving MinVersion: 0 instructs the runtime to choose the…

    Recommended action: Upgrade to 1.13.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)osv.dev (2)github.com (3)Source checked Evidence →
  9. High, CVSS 8.7GoAmendedPublished

    RabbitMQ amqp091-go: Connection Configuration Overwrite via Unsanitized TLS Path Parameter Injection

    CVE-2026-77404 · GHSA-465g-fh3v-9jw4

    Affected
    • Go github.com/rabbitmq/amqp091-go < 1.13.0
    Fixed in
    1.13.0· Vendor fix available
    Issue
    A query parameter injection vulnerability exists in the AMQP client's connection URI formatting logic. When generating or parsing connection URIs, TLS-related filesystem paths (such as certificates or keys) are appended directly to the URI's query string using string concatenation rather than secure URL encoding via functions like url.QueryEscape. If an application handles a TLS file path containing special character delimiters (such as & or =), these characters are interpreted as parameter separators by the URI parser. If the resulting URI.String() output is subsequently re-parsed via ParseURI, the injected fields can silently overwrite or hijack critical configuration parameters, forcing the client to use arbitrary connection settings or alternate TLS files. --- Vulnerability Details Mechanism The vulnerability lies within the lack of proper escaping when compiling connection string components into a raw URL format: Because certPath and keyPath are not passed through…

    Recommended action: Upgrade to 1.13.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)osv.dev (2)github.com (3)Source checked Evidence →
  10. High, CVSS 8.9GoAmendedPublished

    RabbitMQ amqp091-go: Denial of Service via Sub-Spec Frame Size Negotiation

    CVE-2026-77403 · GHSA-xwwf-m8fg-p9q2

    Affected
    • Go github.com/rabbitmq/amqp091-go < 1.13.0
    Fixed in
    1.13.0· Vendor fix available
    Issue
    A Denial of Service (DoS) vulnerability exists in the AMQP client's connection negotiation logic. The AMQP specification explicitly mandates a strict minimum frame size of 4096 bytes to prevent pathological packet fragmentation. While the library defines a frameMinSize = 4096 constant, the connection negotiation loop fails to enforce this boundary, blindly accepting whatever maximum frame size (FrameMax) the server advertises during the handshake. If a client connects to a malicious or compromised AMQP broker that advertises an extremely low FrameMax (such as 1 byte), the negotiation succeeds. Consequently, every subsequent message transmission is forced to splinter into thousands or millions of single-byte frames, causing massive CPU overhead, thread contention, and a near-instantaneous application freeze. --- Vulnerability Details Mechanism During the connection establishment phase, the client and server negotiate connection parameters—including maximum channel count,…

    Recommended action: Upgrade to 1.13.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)osv.dev (2)github.com (3)Source checked Evidence →
  11. High, CVSS 8.9GoAmendedPublished

    amqp091-go has a Potential Memory Exhaustion/Protocol Violation via Broker-Controlled Oversized Payload

    CVE-2026-79921 · GHSA-6c5v-hqjr-5xxp

    Affected
    • Go github.com/rabbitmq/amqp091-go < 1.13.0
    Fixed in
    1.13.0· Vendor fix available
    Issue
    A vulnerability exists in the amqp091-go client library where a compromised or malicious AMQP broker can force the client to allocate resources for and process content body frames that exceed the negotiated framemax limit. This can lead to unexpected memory consumption or application-layer denial of service (DoS), bypassing the protocol's built-in framing constraints. Details During a standard AMQP 0-9-1 connection handshake, the client and the broker negotiate a maximum frame size (framemax), for example, 4096 bytes. However, after negotiation, a malicious broker can send a valid basic.deliver sequence containing a content body frame whose header declares a payload size larger than the negotiated framemax. Instead of enforcing the agreed-upon limit and closing the connection with a frame-error (as mandated by the AMQP 0-9-1 specification), the amqp091-go client: 1. Accepts the broker-declared oversized frame size. 2. Allocates memory based on this oversized declaration. 3.…

    Recommended action: Upgrade to 1.13.0 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.

    Sources:osv.dev (1)osv.dev (2)github.com (3)Source checked Evidence →