ハッカーがRabbitMQのOAuth脆弱性を悪用し、あらゆるメッセージ・キュー・ユーザー情報にアクセス可能

セキュリティ研究者が、オープンソースのメッセージブローカーであるRabbitMQに存在する2件のアクセス制御脆弱性を公表しました。RabbitMQは現在稼働しているコンテナの推定8%で使用されているとされ、これらの脆弱性を悪用すればブローカーの完全な管理者権限を攻撃者が奪取したり、テナント間で共有されている機密性の高いキューデータをひそかにマッピングしたりすることが可能になります。

Compliancemanagement tools

両脆弱性は、Miggo Securityの自律型研究システムVulnHunterによって発見されたもので、2024年初頭にリリースされたバージョン3.13.0以降、RabbitMQのコードベースに存在し続けていました。RabbitMQのメンテナーとの協調的な情報開示を経て、現在はパッチが提供されています。

ハッカーが悪用可能なRabbitMQのOAuth脆弱性

より深刻な脆弱性(CVSS v4.0で8.7)は、廃止済みの管理API エンドポイントGET /api/authに存在しており、認証されていないリクエストであってもブローカーのOAuth 2設定情報を返してしまう問題です。

Image

運用担当者がAuth0、Entra ID、Keycloak、UAAなどのIDプロバイダー向けにmanagement.oauth_client_secretを設定していた場合、その機密情報である秘密鍵がプレーンテキストのレスポンスにそのまま含まれてしまいます。

技術的な根本原因はrabbit_mgmt_wm_auth.erlにあり、このエンドポイントのis_authorized/2コールバックが常にtrueを返すようハードコーディングされており、認証を完全に迂回してしまう構造になっていました。

攻撃者はポート15672へのネットワークアクセスさえあれば秘密鍵を取得でき、それをIDプロバイダーに渡すことで管理者トークンと交換し、メッセージ、キュー、ユーザー、ブローカー設定に対する完全な制御権を得ることができます。

開示された詳細なパラメータ、技術的な根本原因、およびシステム全体に及ぶリスク評価については、「Full Broker Takeover, No Login Required」という発表資料にまとめられています。 Miggoが発見したRabbitMQの重大な脆弱性がアプリケーションデータを危険にさらしている、という内容です。

2つ目の脆弱性(CVSS v4.0で5.3、CWE-862)は、権限を一切持たないユーザーであっても、認証済みであればキューやエクスチェンジを列挙し、その統計情報を読み取ることができてしまうというものです。

このバグはrabbit_channel.erlに存在しており、「passive declare」と呼ばれる存在確認操作において権限検証が省略されていました。これはqueue.deletebasic.publishなど、他の同等の操作とは異なる扱いになっていました。

共有型のマルチテナントRabbitMQ環境では、この脆弱性により低権限アカウントであっても、同じ仮想ホストを共有する他テナントの命名規則やメッセージ量、業務活動の状況を偵察できてしまいます。こうした情報は後続の攻撃に悪用され得るものです。

このような、バックエンドの認可漏れを放置した脆弱性は企業のテナント分離を著しく損ないかねず、大規模なソフトウェアのデシリアライゼーションや認証情報の窃取の際にたびたび見られる、システム全体に及ぶアクセスリスクと通底するものです。

特定されたCVE番号 対象アーキテクチャのスクリプト 悪用の仕組み 中核となる運用リスク
CVE-2026-57219 rabbit_mgmt_wm_auth.erl is_authorized/2コールバックがtrueにハードコーディングされ迂回可能 未認証状態でのOAuthクライアントシークレットのプレーンテキスト取得
CVE-2026-57221 rabbit_channel.erl passive declareの検証処理に権限チェックが欠如 無許可でのテナント偵察およびメタデータ収集

両脆弱性とも、RabbitMQ 4.3.0、4.2.6、4.1.11、4.0.20、3.13.15で修正されています。Miggoは以下を推奨しています。

Hacking& Cracking

  • パッチの適用: 直ちに、上流でサポートされているリリースへアップデートしてください。
  • 認証情報のローテーション: OAuthクライアントシークレットをローテーションしてください。パッチ適用によって脆弱なエンドポイントは削除されますが、すでに漏えいした認証情報自体が無効化されるわけではありません。
  • ネットワークの堅牢化: 管理用ポート(15672)は、信頼できないネットワークや公開ネットワークから完全に切り離しておいてください。
  • テナント分離: 単一の仮想ホストを信頼境界をまたいで共有するのではなく、仮想ホストごとにテナントを厳密に分離してください。
  • イメージの監査: 固定バージョンのコンテナイメージやHelmチャートを監査してください。これらは上流での修正提供後も、脆弱なバージョンが長期間稼働し続ける原因となり得ます。

CVE-2026-57219については、Miggoが暫定対策として、脆弱なエンドポイントへのアクセスをブロックするWAFルールを公開しています。CVE-2026-57221については同等の緩和策は存在せず、アップグレードのみが恒久的な解決策となります。

メッセージのトポロジーを効果的に保護するためには、エンジニアはマイクロサービス全体にわたって厳格なAPIセキュリティテストのようなモデルを組み込むなど、継続的な防御戦略を採用する必要があります。

いずれのCVEについても、実際の悪用は確認されていません。両者とも「インコンシステンシー(不整合)」バグ、すなわちコードベース自体が確立してきた認可パターンからの微妙な逸脱であると説明されており、大規模かつ横断的な自動分析によってこそ発見しやすくなってきている種類の問題だといえます。

翻訳元: https://gbhackers.com/rabbitmq-oauth-vulnerability/

ソース: gbhackers.com