Executive brief
RabbitMQ's AMQP client library for Go fails to explicitly set a minimum TLS version when connecting to message brokers. While modern Go compilers default to TLS 1.2, applications built with older Go toolchains (pre-1.18) could fall back to insecure TLS 1.0 or 1.1, allowing attackers to intercept and decrypt sensitive messages and authentication credentials through downgrade attacks.
Technical details
The vulnerability exists in the `tlsConfigFromURI` function in the AMQP client library, which constructs a `*tls.Config` object without explicitly setting the `MinVersion` field. In Go, an unset `MinVersion` defaults to the toolchain's implicit minimum—TLS 1.0 in pre-1.18 versions. An attacker performing a network-level Man-in-the-Middle attack can force protocol downgrade to TLS 1.0 or 1.1, exposing the connection to known cryptographic attacks (BEAST, POODLE, SWEET32). This affects clients compiled with legacy Go versions or non-standard runtimes. The fix requires explicitly configuring `MinVersion: tls.VersionTLS12` in the TLS configuration builder.
Affected products
- RabbitMQ amqp091-go
Timeline
- 2026-09-17: disclosed