[2024.12 脆弱性レポート] jsonpath-plusに重大なRCEの脆弱性 (CVE-2024-21534) | Cloud-Based Platform AIONCLOUD

Threat Intelligence Report

Get up-to-date information on web application vulnerabilities, attacks, and how to respond.

Back to Threat Intelligence Report

[2024.12 脆弱性レポート] jsonpath-plusに重大なRCEの脆弱性 (CVE-2024-21534)

TA チームが 「Critical RCE Vulnerability in jsonpath-plus (CVE-2024-21534)」 を解析して書いた脆弱性レポートです。

CVE-2024-21534 は、不適切な入力サニタイズによる jsonpath-plus パッケージのリモートコード実行 (RCE) 脆弱性です。この脆弱性は、悪意のあるユーザが入力を通して任意のコードを実行することを可能にすることで、システムに深刻なセキュリティ上の脅威をもたらす可能性があります。脆弱性を持つシステムは、攻撃者にシステムを遠隔操作する機会を与える可能性があるため、早急な解決が必要です。

この脆弱性を解決するための最も重要な対策は、最新バージョンのパッケージにアップデートすることです。アップデートすることで、セキュリティパッチなどの脆弱性によるリスクを防ぐことができる。また、入力値のバリデーションやフィルタリングを徹底することで、セキュリティを強化することができる。本脆弱性はコード実行によりシステムを侵害する可能性があるため、早急にパッチを適用し、万全のセキュリティ対策を講じることが重要です。

また、当社のWAFは継続的に監視を行っており、今後発見された脆弱性にも迅速に対応いたします。


1. 概要

jsonpath-plus は JSONPath の JS 実装であり、いくつかの追加演算子を含んでいます。

jsonpath-plus パッケージの 10.0.7 より前のバージョンには、不適切な入力サニタイズによるリモートコード実行 (RCE) の脆弱性があります。攻撃者は、Node.js における vm の安全でないデフォルトの使用を悪用して、システム上で任意のコードを実行する可能性があります。

image.png


2. 攻撃タイプ

この脆弱性は、ユーザー入力を適切にサニタイズしないため、攻撃者がサーバー上に任意のコードを注入して実行することを可能にします。

攻撃者は、任意のJavaScriptコードを含む悪意のあるJSONPath式を作成することができます。この式がjsonpath-plusによって評価されると、注入されたコードがサーバー上で実行される。悪用プロセスは次のように動作します。

  1. 悪意のある入力操作: 攻撃者は、JSONPathの機密ファイルの読み取りやシステムコマンドの実行など、不正なアクションを実行することを意図したJavaScriptコードを埋め込む式を作成します。
  2. 注入ポイント: 悪意のあるコードがアプリケーションのエンドポイントに供給され、そこで JSONPath がユーザーから提供された JSON データに対するクエリを処理するために使用されます。
  3. コードの実行: アプリケーションは、適切なサニタイズなしに式を評価するためにVMモジュールを使用します。その結果、攻撃者のコードがサーバー上で実行されます。

このコード(node index.js)を実行すると、cat /etc/passwdファイルの内容を表示するコマンドが実行される。これは攻撃者がどのように任意のシステムコマンドを実行できるかを示している。

// index.js
const { JSONPath } = require("jsonpath-plus");
const data = {};
const maliciousCode = 'require("child_process").exec("cat /etc/passwd")';
const maliciousPath = `$[(this.constructor.constructor("${maliciousCode}")())]`;

const result = JSONPath({
    json: data,
    path: maliciousPath
});

3. 対応

CVE-2024-21534 は、jsonpath-plus パッケージにおけるリモートコード実行 (RCE) の脆弱性です。この脆弱性は、不適切な入力サニタイズによって引き起こされ、攻撃者がシステム上で任意のコードを実行する可能性があります。この脆弱性に対処するためには、以下の対策を検討する必要があります。

  • アップデートの適用: jsonpath-plus パッケージを最新バージョンにアップデートすることが、最も効果的な緩和策です。最新版では脆弱性が修正されています。
  • 入力検証を実施する: この脆弱性は不適切な入力検証によって引き起こされるため、ユーザ入力を徹底的に検証し、フィルタリングするための追加のセキュリティ対策を適用することができます。
  • 安全な使用を保証する: jsonpath-plusのデフォルトの使い方が安全でないことを認識し、可能な限り安全な設定を使ってコードの実行を制限する。

この脆弱性については、当社のAIWAF製品がさらなる分析を行い、パターンとして対応する。


4. 結論

CVE-2024-21534 は、jsonpath-plus パッケージにリモートでコードを実行される (RCE) 脆弱性で、不適切な入力サニタイズが原因です。この脆弱性は、悪意のあるユーザが入力経由で任意のコードを実行することを可能にし、システムに深刻なセキュリティ上の脅威をもたらします。この脆弱性を持つシステムは、攻撃者にリモートからシステムを制御する機会を与える可能性があるため、早急な対策が必要です。

この脆弱性への最も重要な対策は、影響を受けるパッケージの最新バージョンにアップデートすることです。アップデートにはセキュリティパッチが含まれており、脆弱性がもたらすリスクを防ぐことができる。また、入力の検証とフィルタリングを徹底することで、セキュリティを強化することもできる。この脆弱性はコードの実行によってシステムを危険にさらす可能性があるため、できるだけ早くパッチを適用し、可能な限りのセキュリティ対策を講じることが重要です。

当社のWAFもこの脆弱性を監視しており、今後も発見された脆弱性には迅速に対応していく。


5. 参考文献

Scroll Up