Description (CNA)
RabbitMQ is a messaging and streaming broker. Prior to versions 4.2.7 and 4.3.1, rabbit_pid_codec:decompose_from_binary/1 parses a caller-supplied ETF-encoded binary and calls binary_to_atom(Node, utf8) on the node-name field. It is reached from rabbit_volatile_queue:pid_from_name/2, which is invoked for any queue name / routing key beginning amq.rabbitmq.reply-to.. The CandidateNodes membership check happens after the atom is created, and the surrounding try/catch cannot reclaim atoms (they are never GC'd). binary_to_existing_atom is not used. Any authenticated AMQP client can crash the entire Erlang VM (all vhosts, all connections) with ~1M cheap requests. Preconditions include Authenticated AMQP 0-9-1 connection to any vhost No per-connection rate limit low enough to make ~1M operations infeasible. This issue is fixed in versions 4.2.7 and 4.3.1.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| rabbitmq / rabbitmq-server | affected >= 4.2.0, < 4.2.7; affected >= 4.3.0, < 4.3.1 |
CWE
CWE-400
References
- https://github.com/rabbitmq/rabbitmq-server/security/advisories/GHSA-x96j-244m-mrr2
- https://github.com/rabbitmq/rabbitmq-server/releases/tag/v4.2.7
- https://github.com/rabbitmq/rabbitmq-server/releases/tag/v4.3.1
ADP enrichment
No English description supplied.
No references supplied.