NIST deprecates RSA-2048 from 2030. Find every one of them before attackers do.
🐹 Go
Not in CISA KEV

RabbitMQ amqp091-go: Connection Configuration Overwrite via Unsanitized TLS Path Parameter InjectionGHSA-465g-fh3v-9jw4

Fix: rabbitmq/amqp091-go#352

GHSA-465g-fh3v-9jw4 is a CWE-116 vulnerability in github.com/rabbitmq/amqp091-go. A fix is available for github.com/rabbitmq/amqp091-go — see the affected versions and patch details below.

Also known asCVE-2026-77404GO-2026-6493
Published
Updated
Affected
1 pkg
Patched
1 / 1
Exploits
None indexed
Exploitation data as of Oct 30, 2026 · OSV.dev, NVD, FIRST.org (EPSS)

Exploitation Status

No confirmed exploitation observed yet

  • A successful exploit gives an attacker total control of the affected component, not partial access.
  • CISA’s own triage has not observed active exploitation or public proof-of-concept code for this CVE as of its last assessment.

Exploitation and automatability from CISA’s SSVC triage for GHSA-465g-fh3v-9jw4.

EPSS Exploitation Probability

via FIRST.org ↗
0.1%probability of exploitation in next 30 days
Lower Risk+0.01%
Lower risk than most CVEs1th percentile — riskier than 1% of all scored CVEsHighest risk
0.00%0.20%0.40%0.60%0.1%0.1%Oct 26Oct 26

Probability of exploitation in the next 30 days, from FIRST.org EPSS.

Real-World Exposure

1 pkg affected
🐹github.com/rabbitmq/amqp091-go

Real-time download stats are indexed for npm and PyPI packages. This vulnerability affects Go packages — download data is not available via public APIs for these ecosystems.

Description

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:

// 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.

Affected Packages

1 total 1 fixed
EcosystemPackageVulnerable rangeFix
🐹Gogithub.com/rabbitmq/amqp091-goall versions1.13.0go get github.com/rabbitmq/amqp091-go@v1.13.0

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for github.com/rabbitmq/amqp091-go, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.

  2. Fix

    Update github.com/rabbitmq/amqp091-go to 1.13.0 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-465g-fh3v-9jw4 is resolved across your whole dependency graph.

  3. Workarounds

    If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.

Fixing This On Your OS

If you run this on a Linux distribution, patch through your package manager against the distro's own security advisory below — it tracks the exact backported fix for your release, which can ship on a different timeline (and sometimes a different severity) than the upstream project.

Red HatImportant

This flaw has an Important impact because applications in Red Hat products that use amqp091-go and accept attacker-controlled TLS asset paths can be induced to reparse a crafted AMQPS URI. A local attacker with partial control of a certificate, key, CA, or server-name path or related environment setting can inject…

Workaround published by Red Hat
Avoid accepting untrusted values for TLS certificate, key, CA, or server-name paths. Restrict write access to directories and environment settings used to configure those paths, and upgrade applications using amqp091-go to version 1.13.0 or later when available.
Source: Red Hat security advisory for GHSA-465g-fh3v-9jw4 (CC BY 4.0)
ProductFixed inAdvisory
Red Hat Hardened Imagesopentelemetry-collector-contrib-main-0.161.0-0.1.hum1RHSA-2026:68290
Red Hat Quay 3.10quay/quay-rhel8:1791462428RHSA-2026:79366
Red Hat Quay 3.12quay/quay-rhel8:1791314514RHSA-2026:79546
Red Hat Quay 3.9quay/quay-rhel8:1790808443RHSA-2026:77656

Frequently Asked Questions

## 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 r
O3 Security · Impact-Aware SCA

Is GHSA-465g-fh3v-9jw4 in your dependencies?

Find it across Go, including transitive dependencies.

RabbitMQ amqp091-go: Connection Configuration…