RabbitMQ administrator RCE through reflected Erlang distribution authentication
概要
Summary
This advisory describes a complex attack that requires administrative access
to the HTTP API and a number of other variables to hold true.
A RabbitMQ management user with the administrator tag can escalate from
broker administration to arbitrary BEAM function execution without k...
影響パッケージ
| 種類 | パッケージ | 影響を受ける版 | 直った版 |
|---|---|---|---|
| other | rabbitmq-server |
>= 3.13.0, < 3.13.19 |
3.13.19 |
| other | rabbitmq-server |
>= 4.0.0, < 4.0.24 |
4.0.24 |
| other | rabbitmq-server |
>= 4.1.0, < 4.1.15 |
4.1.15 |
| other | rabbitmq-server |
>= 4.2.0, < 4.2.10 |
4.2.10 |
| other | rabbitmq-server |
>= 4.3.0, < 4.3.5 |
4.3.5 |
原文の説明 取得元が公開している説明をそのまま載せています (多くは英語)。
Summary
This advisory describes a complex attack that requires administrative access
to the HTTP API and a number of other variables to hold true.
A RabbitMQ management user with the administrator tag can escalate from
broker administration to arbitrary BEAM function execution without knowing the
Erlang distribution cookie and without local operating-system access.
The chain combines three behaviors:
- Administrator-accessible global-parameter names are converted into new
Erlang atoms. This lets the attacker intern two node names such as
evil@attackerandoracle@attacker. DELETE /api/reset/:nodeaccepts any existing node atom and performs
rabbit:is_running(Node)before checking whether the node is a cluster
member. Two concurrent requests initiate two outbound Erlang distribution
handshakes to attacker-controlled nodes.- OTP 27's legacy cookie digest is bound to the cookie and challenge but not
the peer identity, connection direction, or complete transcript. The digest
produced on one outbound connection can authenticate the other.
After authentication, the attacker can send a registered distribution message
to rex and choose the module, function, and argument list.
The proof is intentionally non-destructive: it invokes only
erlang:md5(Nonce) and verifies the returned digest.
This is an authenticated administrator RCE.
Preconditions
- Valid management credentials with the
administratortag. - The RabbitMQ management pl…
出典: GitHub Repository Security Advisories (Game のスタック) GitHub Advisory OSV
参照URL
- GITHUB_REPO_ADVISORY rabbitmq/rabbitmq-server