Shovel URI credentials disclosed to read-only monitoring users via the shovel management HTTP API
概要
Summary
GET /api/shovels/vhost/{vhost}/{name} returns the raw stored dynamic-shovel definition, which contains src-uri and dest-uri with cleartext credentials for the shovel's source and destination brokers. The endpoint authorizes non-DELETE reads with the monitoring tag. A read-onl...
影響パッケージ
| 種類 | パッケージ | 影響を受ける版 | 直った版 |
|---|---|---|---|
| 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
GET /api/shovels/vhost/{vhost}/{name} returns the raw stored dynamic-shovel definition, which contains src-uri and dest-uri with cleartext credentials for the shovel's source and destination brokers. The endpoint authorizes non-DELETE reads with the monitoring tag. A read-only monitoring user — who cannot create or manage shovels, and who is denied the equivalent read through the parameters API — can read another operator's external-broker passwords.
Details
The per-shovel management endpoint returns the stored runtime parameter verbatim, with no redaction, behind monitor-level authorization:
deps/rabbitmq_shovel_management/src/rabbit_shovel_mgmt_shovel.erl:is_authorized/2(:78-84) routes non-DELETErequests torabbit_mgmt_util:is_authorized_monitor— themonitoring(oradministrator) tag.to_json/2(:73-76) returnsrabbit_mgmt_format:parameter(Shovel)whereShovelis the rawrabbit_runtime_parameters:lookup/3result fromparameter/1(:147-156).
The definition is stored unobfuscated. obfuscate_uris_in_definition/1 is invoked only when a worker spec is built, never on the storage or read path:
deps/rabbitmq_shovel/src/rabbit_shovel_dyn_worker_sup_sup.erl:68,70— the only call sites ofobfuscate_uris_in_definition/1.deps/rabbitmq_shovel/src/rabbit_shovel_parameters.erl—validate/5(:48) andnotify/5(:61) do not obfuscate; the term is written verbatim.- `deps/rabbitmq_management_agent/src/rabbit…
出典: GitHub Repository Security Advisories (Game のスタック) GitHub Advisory OSV
参照URL
- GITHUB_REPO_ADVISORY rabbitmq/rabbitmq-server