rabbitmq-server: RabbitMQ: AMQP 1.0 management exchange.declare skips alternate-exchange permission check
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. From 4.2.0 until 4.2.9 and 4.3.3, AMQP 1.0 management exchange.declare skips alternate-exchange permission check. pUT /exchanges/:name (lines 192-240) checks only configure on the declared exchange and passes XArgs straight to rabbitexchange:declare/7. It omits the checkreadpermitted(X) + checkwritepermitted(AE) that rabbitchannel.erl:2540-2548 enforces for the alternate-exchange argument on the AMQP 0-9-1 path. The same file already implements the analogous DLX check for queues (lines 708-719), confirming this is a missing-check bug rather than intentional A user with only configure on exchange X can route X's unroutable messages into an alternate exchange they have no write permission AMQP 1.0 enabled (default in RabbitMQ 4.x) Attacker has configure on at least one exchange but lacks write on the target. This issue is fixed in versions 4.2.9 and 4.3.3.
Text from CVE List
Affected versions 2
- rabbitmq-serveraffected: >= 4.2.0, < 4.2.9CVE List
- rabbitmq-serveraffected: >= 4.3.0, < 4.3.3CVE List
References 5
- github.com/rabbitmq/rabbitmq-server/commit/18eac8d547b4382bf830c621b20a35932dd1cfa5Fixvia CVE List
- github.com/rabbitmq/rabbitmq-server/commit/56005e7cebffc478ef397573de24aff1167e7cdaFixvia CVE List
- github.com/rabbitmq/rabbitmq-server/releases/tag/v4.2.9Fixvia CVE List
- github.com/rabbitmq/rabbitmq-server/releases/tag/v4.3.3Fixvia CVE List
- github.com/rabbitmq/rabbitmq-server/security/advisories/GHSA-rg2g-289m-xhhwExploitvia CVE List