Grafana の脆弱性 CVE-2024-9264 (CVSS 9.9):PoC エクスプロイトが公開

Grafana Vulnerability CVE-2024-9264: PoC Exploit Released for 9.9-Rated Critical Flaw

2024/10/28 SecurityOnline — オープンソースのマルチ・プラットフォーム分析/可視化ツールである、Grafana に存在する脆弱性 CVE-2024-9264 (CVSS: 9.9) に対して、技術的詳細と PoC エクスプロイト・コードが公開された。この脆弱性は、Grafana のバージョン 11.0.x/11.1.x/11.2.x に影響を及ぼし、コマンド・インジェクションおよびローカルファイル・インクルージョン (LFI:local file inclusion) のリスクに、システムをさらす可能性があるものだ。

この脆弱性 CVE-2024-9264 の悪用に成功した、Viewer 以上の権限を持つ攻撃者は、アプリケーションの実験的な SQL Expressions 機能の悪用が可能になる。

この脆弱性は、Grafana 11 で導入された新機能の SQL Expressions に起因する。この機能は、SQL クエリを利用してデータ・クエリの事後処理を行うという、パワフルな方式を提供するものだ。しかし、入力データに対するサニタイズ処理が欠如しているため、この機能にはリスクが伴う。

つまり、攻撃者はバックエンドの DuckDB CLI を通じて、任意の SQL コマンドを注入して Grafana に実行させ、DataFrame でフォーマットされたデータを標的にできる。この悪意の入力により、LFI とコマンド・インジェクションがトリガーされ、機密ファイルの公開や RCE にいたる可能性が生じる。

この SQL Expressions 機能は、Grafana のデフォルトで API に対して有効化されていたが、実験的な状態であることを考慮すると、無効化にすべき機能であったと思われる。このミスコンフィグにより、攻撃者は API を通じて、この機能にアクセスできる状態になっていた。ただし、悪用を成功させるには、以下の条件を満たす必要があるため、デフォルトのインストールにおけるリスクは若干軽減される。

  1. DuckDB への依存:Grafana は、DuckDB をバンドルしていないため、手動でインストールし、Grafana の PATH 環境変数にリンクする必要がある。
  2. アクセス要件:攻撃者は、少なくとも閲覧者権限が必要であり、脆弱な Grafana インスタンスと同じネットワーク上に存在する必要がある。

この脆弱性を悪用するには、さらに、いくつかの前提条件を満たす必要がある:

  1. 対象の Grafana インスタンスで、閲覧者レベルのアクセス権限を得る。
  2. DuckDB がシステム環境にインストールされ、設定されていることを確認する。
  3. Grafana ダッシュボードへのリクエストを変更または傍受し、悪意の結果を意図した SQL 式を挿入する。

これらの条件を満たす攻撃者は、不正なコマンドを実行し、機密ファイルにアクセスする SQL Expressions の作成が可能になる。たとえば、先日に公開された CVE-2024-9264 の PoC エクスプロイトは、SQL Expressions 内で read_csv_auto() 関数を使用する攻撃者が、Linux パスワード・ファイルなどの重要なシステム・ファイルの内容にアクセスする方法を示しており、LFI の影響の深刻さを示している。

すでに Grafana は、最新のリリースで、この脆弱性に対応している。ユーザーに強く推奨されるのは、Grafana インスタンスを、直ちに修正版で更新することだ。