Loading...
Skip to main content

CVE-2026-77404 — Vulnerability in github.com/rabbitmq/amqp091-go —...

HIGH

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

Published September 17, 2026Updated October 1, 2026Source: osv

Summary

## Summary 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: ```go // Example of insecure string concatenation during URI building uri := fmt.Sprintf("amqps://user:pass@host/%s?certfile=%s&keyfile=%s", vhost, certPath, keyPath) ``` Because `certPath` and `keyPath` are not passed through `url.QueryEscape`, special URL characters preserve their control meanings. For instance, if a user supply a certificate path named: `/tmp/cert=foo&keyfile=/evil/path` The generated string translates into: `...?certfile=/tmp/cert=foo&keyfile=/evil/path&keyfile=/original/path` When this string passes back through `ParseURI` (common in connection re-dial routines or configuration replication steps), standard URL parsing mechanics treat the string as multiple distinct parameters. Depending on map assignment order inside the parser, the injected keys take precedence over the original parameters. ### Impact By manipulating the file paths used for TLS assets, an attacker or compromised local sub-system can: * Inject arbitrary alternative options or override protocol settings. * Substitute or switch keyfiles, leading to connection failures or the parsing of unauthorized cryptographic assets. * Corrupt connection state variables, triggering application-layer failures during connection setup or recovery. --- ## Attack Vector An attacker who has partial control over directory naming conventions or environmental variables used to specify local infrastructure paths can execute a parameter injection attack: 1. **Path Creation:** An attacker sets up a path containing deliberate URL parameter delimiters (e.g., `/var/lib/certs/client.crt?cacertfile=/tmp/fake_ca.crt&`). 2. **String Generation:** The application serializes the active connection state or passes the paths down to an unescaped URI builder function. 3. **Configuration Hijack:** The URI string is generated with the injected parameter embedded into the query structure. When the client attempts to reuse or re-parse this connection string during a connection retry or worker spin-up, it parses the injected `cacertfile` parameter, loading a different, unverified Certificate Authority string.

Advisory Timeline

  • First published September 17, 2026 (25 days ago).
  • Last revised October 1, 2026 — 14 days after initial publication.

Remediation

Upgrade to the fixed version using your package manager.

Go
Update github.com/rabbitmq/amqp091-go to 1.13.0 or later
go get github.com/rabbitmq/amqp091-go@v1.13.0

After upgrading, run your dependency scanner again to confirm the vulnerability is resolved.

Affected Packages (1)

Affects 1 ecosystem: go (1).

PackageEcosystemAffectedFixed In
github.com/rabbitmq/amqp091-go
go
All versions1.13.0

Vulnerability Classification

Common Weakness Enumeration (CWE) identifiers for this vulnerability type.

  • CWE-116
    Improper Encoding or EscapingMITRE

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 8.5 score means for each attack dimension.

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
—
Confidentiality
—
Integrity
—
Availability
—

CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:L

Frequently Asked Questions

What is CVE-2026-77404?
RabbitMQ amqp091-go: Connection Configuration Overwrite via Unsanitized TLS Path Parameter Injection This vulnerability has been assigned a severity rating of HIGH (CVSS score: 8.5/10).
How do I check if my project is affected by CVE-2026-77404?
CVE-2026-77404 affects github.com/rabbitmq/amqp091-go. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2026-77404 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
8.5

High exploitability or significant impact. Prioritize remediation within days.

Also Known As

GHSA-465g-fh3v-9jw4
GO-2026-6493

Related CVEs

  • CVE-2026-77405
    CRITICAL

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

  • CVE-2026-77411
    CRITICAL

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

  • CVE-2026-77408
    CRITICAL

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

  • CVE-2026-107809
    HIGH

    Nginx-UI AuthRequired token cookie fallback enables CSRF against management APIs

  • CVE-2026-107813
    HIGH

    Nginx UI: Incomplete fix of CVE-2026-84315 - the api/cluster router was not - wrapped in RequireSecureSession, so those sensitive mutations run without OTP step-up

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies