rabbitmq-server: RabbitMQ: Trust-store whitelist by Issuer+Serial only
What fixes it
No source in this snapshot names a fixed version. The vendor advisories under References are the place to check.
Description
RabbitMQ is a messaging and streaming broker. Prior to versions 3.13.15, 4.0.20, 4.1.11, 4.2.6, and 4.3.0, The trust-store plugin installs a verify_fun that overrides {bad_cert, unknown_ca} / {bad_cert, selfsigned_peer} when the presented cert "matches" a whitelisted one. The match key is extract_issuer_id/1 → public_key:pkix_issuer_id/2 → {IssuerName, SerialNumber} , both fields are taken verbatim from the presented certificate body and contain no public-key, SKI, fingerprint or signature material. is_whitelisted/1 is a pure ets:member lookup; the stored full DER is used only for list/0 display and is never compared against the presented cert. cacerts is [], so the whitelisted cert is never used as a trust anchor for path validation either. TLS client-authentication bypass: an attacker who knows the issuer DN + serial of any whitelisted certificate can connect with a forged self-signed cert. Preconditions include rabbitmq_trust_store plugin enabled and used as the TLS verify_fun Attacker knows or can guess the {Issuer, Serial} of at least one whitelisted cert (non-secret; exposed via CLI/logs/any cert copy). This issue is fixed in versions 3.13.15, 4.0.20, 4.1.11, 4.2.6, and 4.3.0.
Text from CVE List
Affected versions 4
- rabbitmq-serveraffected: >= 3.13.0, < 3.13.15CVE List
- rabbitmq-serveraffected: >= 4.0.0, < 4.0.20CVE List
- rabbitmq-serveraffected: >= 4.1.0, < 4.1.11CVE List
- rabbitmq-serveraffected: >= 4.2.0, < 4.2.6CVE List