概要
BI(ビジネスインテリジェンス)ツール「Metabase」に、未認証のリモート攻撃者がアプリケーションのデータベースへ任意のSQLを注入し、管理者権限を奪取できる深刻な脆弱性が発見された。CVSSスコアは最大値の10.0と評価されているが、記事執筆時点でCVE番号はまだ割り当てられていない。この脆弱性はゼロデイの状態で実際の攻撃に悪用されており、ノートパソコンメーカーのFramework、フォームビルダーのTallyといった企業がMetabase経由で顧客データを窃取される被害を受けたことを確認している。
脆弱性の技術的詳細
脆弱性はバージョン1.58.0以降のMetabaseに存在し、攻撃者は未認証のままSQLインジェクションを通じてアプリケーションデータベースを操作し、管理者アクセス権を取得できる。侵害されたインスタンスでは特徴的な通信パターンが確認されており、パスワードリセットAPI「POST /api/session/reset_password」への呼び出しがステータスコード400で返された直後に、「GET /api/user/current」への呼び出しがステータスコード200で成功するというシーケンスが検知の指標とされている。管理者権限を奪われると、設定の改ざん、接続先データベースの認証情報の窃取、機密データのエクスポートなどが可能になる。
Metabaseは、v0.58.24/v1.58.24、v0.59.21/v1.59.21、v0.60.17/v1.60.17、v0.61.11/v1.61.11、v0.62.9/v1.62.9、v0.63.5/v1.63.5でこの脆弱性を修正した。0.57系以前のバージョンは影響を受けないとされている。なお、Metabaseは2023年にもCVE-2023-38646(CVSS 9.8)という類似の重大な脆弱性を修正しており、今回はそれからちょうど3年後の再発となる。
実際の被害状況
Framework社は8月3日に攻撃を受け、顧客の氏名、ログインIPアドレス、請求先・配送先住所、電話番号、メールアドレス、会社名が流出した。法人向け顧客についてはVAT番号やEIN(雇用者識別番号)も漏洩したという。一方、支払い情報については無事だったとしている。同じく8月3日に侵害を受けたフォームビルダーのTallyでは、メールアドレスとパスワードハッシュが流出したが、ハッシュは一方向処理されているため復号は困難であり、フォームの内容や回答データ自体は保護されたままだったと報告されている。このほか、LexisNexisでもMetabase APIが影響を受けたとの報告があるが、データ流出の有無は明らかになっていない。Metabaseは8月6日に影響を受けた顧客への通知を行い、8月7日に脆弱性の詳細が公開された。
推奨される対策
Metabase Cloudの利用者に対しては自動的にパッチが適用されているが、自己ホスト環境を運用している利用者は速やかに修正済みバージョンへアップグレードする必要がある。パッチ適用前の緊急対応として、「/api/session/reset_password」エンドポイントへのアクセスを一時的にブロックすることが推奨されている。加えて、アクティブなユーザーセッションの失効、見覚えのないAPIキーの確認と削除、管理者アカウントの不正な変更がないかの監査、接続先データベースの認証情報のローテーション、クエリ実行履歴やアクセスログの確認といった対応が求められる。今回の事案は、BIツールのような社内データ分析基盤であっても、外部公開されたAPIエンドポイントが攻撃の起点となり得ることを改めて示す事例となった。