The RabbitMQ Go client amqp091-go (versions before 1.13.0) keeps the AMQP username and password as plaintext exported fields in Connection.Config.SASL for the whole life of the connection. Any logger, APM agent, debug dump or panic handler that serializes the connection object can therefore write the broker credentials into log pipelines and SIEMs. Exploitation needs no exploit code: it relies on an unprivileged party reading logs. Risk is limited. There is no KEV listing, no public exploit or Nuclei template, and CISA SSVC says TRACK. EPSS is low in absolute terms (0.00128) even though it sits in the top 98th percentile. The package has no tracked downstream dependents. Upgrade to amqp091-go 1.13.0, rotate any AMQP credentials that may already have reached logs, and audit logging and APM configurations for connection-object serialization.
What is the risk?
Medium overall, although the source rates it high (no CVSS score was supplied). It is a credential-exposure weakness (CWE-316), not a remote exploit. It needs the application or a dependency to serialize or inspect the Connection object, and an attacker needs access to the resulting logs or dumps. Exploitation likelihood is low: EPSS 0.00128, no KEV listing, no public exploit, no scanner template, SSVC TRACK. Impact can be significant where the leaked broker credentials give access to message queues carrying AI pipeline data. Exposure rises in multi-tenant logging setups and where logs are widely readable.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| Microsoft APM | go | < 1.13.0 | 1.13.0 |
Do you use Microsoft APM? You're affected.
How severe is it?
What should I do?
1 step1) Upgrade github.com/rabbitmq/amqp091-go to 1.13.0 or later (see GHSA-27gv-rfvv-22mv and PR #350). 2) Rotate AMQP/RabbitMQ passwords for services that used affected versions, especially if logging or APM tooling captured connection state. 3) Search log archives, SIEM indices and crash dumps for the AMQP password or for serialized Connection.Config structures. 4) Stop logging or serializing whole Connection objects. Add redaction rules for password fields in logging and APM agents. 5) Use per-service least-privilege broker accounts and vhost permissions so a leaked credential has limited reach. 6) Restrict access to log aggregators and debug dump locations. 7) Use go list -m all or an SBOM scan to find affected versions across services.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-77407?
The RabbitMQ Go client amqp091-go (versions before 1.13.0) keeps the AMQP username and password as plaintext exported fields in Connection.Config.SASL for the whole life of the connection. Any logger, APM agent, debug dump or panic handler that serializes the connection object can therefore write the broker credentials into log pipelines and SIEMs. Exploitation needs no exploit code: it relies on an unprivileged party reading logs. Risk is limited. There is no KEV listing, no public exploit or Nuclei template, and CISA SSVC says TRACK. EPSS is low in absolute terms (0.00128) even though it sits in the top 98th percentile. The package has no tracked downstream dependents. Upgrade to amqp091-go 1.13.0, rotate any AMQP credentials that may already have reached logs, and audit logging and APM configurations for connection-object serialization.
Is CVE-2026-77407 actively exploited?
No confirmed active exploitation of CVE-2026-77407 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-77407?
1) Upgrade github.com/rabbitmq/amqp091-go to 1.13.0 or later (see GHSA-27gv-rfvv-22mv and PR #350). 2) Rotate AMQP/RabbitMQ passwords for services that used affected versions, especially if logging or APM tooling captured connection state. 3) Search log archives, SIEM indices and crash dumps for the AMQP password or for serialized Connection.Config structures. 4) Stop logging or serializing whole Connection objects. Add redaction rules for password fields in logging and APM agents. 5) Use per-service least-privilege broker accounts and vhost permissions so a leaked credential has limited reach. 6) Restrict access to log aggregators and debug dump locations. 7) Use go list -m all or an SBOM scan to find affected versions across services.
What systems are affected by CVE-2026-77407?
This vulnerability affects the following AI/ML architecture patterns: Model serving pipelines, Training job orchestration, Event-driven agent frameworks, Message-queue based inference pipelines, Data ingestion pipelines.
What is the CVSS score for CVE-2026-77407?
No CVSS score has been assigned yet.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0012Valid AccountsAML.T0055Unsecured CredentialsCompliance Controls Affected
What are the technical details?
Original Advisory
## Summary 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: ```go // auth.go:21-23 type PlainAuth struct { Username string Password string // exported plaintext } ``` When an application initializes a connection, the `PlainAuth` object is deeply nested inside the configuration structure (`Connection.Config`). Even after the handshake concludes and authentication is complete, this structure persists natively in-memory for the duration of the network connection's lifecycle. Because `Password` is an exported string field, standard automated inspection mechanisms can read its value without restriction. ### Affected Code Paths & Integrations Any sub-component or library that traverses or reads the `*Connection` object will inadvertently read the plaintext password, including: * **Reflective Loggers:** Structured logging frameworks that serialize nested configuration structs into JSON/Log formats. * **APM & Performance Agents:** Automated telemetry or Application Performance Monitoring tools that capture state snapshots. * **Debugging & Panic Handlers:** Mid-tier software or dump libraries designed to capture goroutine state or print deep struct hierarchies upon program errors or signals. ### Impact The credential remains vulnerable to leak paths into logging pipelines, log aggregators, security information and event management (SIEM) systems, or standard output. Once transmitted to external log infrastructure, these credentials become accessible to unprivileged operators or any actor with access to log archives. --- ## Attack Vector An attacker does not necessarily need direct remote code execution to exploit this flaw; instead, the vulnerability acts as a credential harvesting vector inside multi-tenant environments or via secondary log exposure: 1. **Configuration Dump:** An operator configures a standard reflective logger or third-party APM package to capture system state parameters, including the active AMQP `*Connection` object. 2. **Reflective Access:** The inspection engine uses Go's `reflect` package to walk the structural hierarchy, pulling the string value from `Connection.Config.SASL.(*PlainAuth).Password`. 3. **Exfiltration:** The plaintext password is written to standard system logs, which are then scraped into shared logging aggregators, exposing production infrastructure credentials to a wider audience.
Exploitation Scenario
An ML platform team runs Go microservices that consume inference jobs from RabbitMQ. A debug-level structured logger or APM agent is configured to capture application state, and it serializes the amqp091-go Connection object, including SASL.(*PlainAuth).Password, into the central log platform. A contractor or compromised analyst account with read access to logs finds the plaintext password. They connect to the broker, consume or publish messages on the queues that carry model inputs, outputs or training job parameters, and tamper with the jobs or read sensitive data.
Weaknesses (CWE)
CWE-316 — Cleartext Storage of Sensitive Information in Memory: The product stores sensitive information in cleartext in memory.
Source: MITRE CWE corpus.
References
- github.com/advisories/GHSA-27gv-rfvv-22mv
- github.com/rabbitmq/amqp091-go/commit/fa013b8447eb60988db3c9281ff6b981e4d2fb4f
- github.com/rabbitmq/amqp091-go/pull/350
- github.com/rabbitmq/amqp091-go/releases/tag/v1.13.0
- github.com/rabbitmq/amqp091-go/security/advisories/GHSA-27gv-rfvv-22mv
- nvd.nist.gov/vuln/detail/CVE-2026-77407
Timeline
Related Vulnerabilities
CVE-2026-468589.1Oracle APM: unauthenticated write/DoS via JVM Diagnostics
Same package: apmCVE-2026-579478.5Pinpoint APM: SSRF via alarm webhook registration
Same package: apmCVE-2022-292637.8F5 BIG-IP APM: insecure temp files enable local privesc
Same package: apmCVE-2026-455397.4Microsoft APM: symlink attack leaks host files in agent deps
Same package: apmCVE-2026-579486.8Pinpoint: insecure JWT cookie enables session hijacking
Same package: apm