ZeroHour

CVE-2026-77407

moderate

Plaintext password retained in memory in RabbitMQ amqp091-go Go client before 1.13.0

CVSS 4.0
7.0 high
EPSS
Published
()
Modified
AI analysis

The official Go AMQP 0.9.1 client for RabbitMQ (amqp091-go) fails to clear PlainAuth credentials after a successful PLAIN authentication handshake: Connection.openComplete in connection.go leaves exported plaintext username/password fields populated in Connection.Config.SASL for the lifetime of the connection. The flaw is triggered by any code that can access the live Connection object, such as reflective loggers, application performance monitoring agents, debugging utilities, and panic handlers, which can traverse the configuration and dump the credentials into logs or state captures. An attacker with local process access, or anyone who obtains such log output or crash dumps, gains the valid RabbitMQ username and password. All applications built with amqp091-go versions prior to 1.13.0 that authenticate with PLAIN are affected. No public proof-of-concept, listing in CISA KEV, or known in-the-wild exploitation has been reported; the vendor-assigned CVSS 4.0 score is 7.0 (high) with a local attack vector.

What to do: Upgrade amqp091-go to version 1.13.0 or later, which clears the credentials after authentication. As an interim mitigation, ensure loggers, APM agents, debug dumps, and panic handlers never serialize Connection.Config or its SASL fields, and audit existing logs and crash captures for exposed passwords. If sensitive logs or dumps may have retained credentials, rotate the affected RabbitMQ user credentials.

Affected
RabbitMQ amqp091-go (Go AMQP 0.9.1 client library)All versions prior to 1.13.0
Estimated exposure
moderate≈ tens of thousands of Go applications and services (exact count unknown) — amqp091-go is the de facto official Go client for RabbitMQ and the maintained successor to the widely imported streadway/amqp module, so deployments are likely in the tens of thousands of codebases, but the exploitable subset is smaller…

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description

RabbitMQ amqp091-go is a Go AMQP 0.9.1 client. Prior to 1.13.0, PlainAuth values defined in auth.go retain passwords as exported plaintext fields in Connection.Config.SASL after a successful PLAIN authentication handshake. The Connection.openComplete method in connection.go does not clear those values. Code with access to the Connection object, including reflective loggers, application performance monitoring agents, debugging utilities, and panic handlers, can traverse the configuration and expose the credentials to logs or state captures. The credential remains available for the lifetime of the connection instead of being cleared after authentication. This issue is fixed in version 1.13.0.

Weakness
CWE-316
Vector
CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:H/VI:N/VA:N/SC:H/SI:L/SA:L/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X

In the news

No ingested article mentions this CVE yet.