JSONata Library の脆弱性 CVE-2024-27307 が FIX:リモートコード実行の可能性

CVE-2024-27307: Critical Flaw in Popular JSONata Library Could Lead to Code Execution

2024/03/14 SecurityOnline — JSON データの照会/変換のために広く使用されている JavaScript ライブラリである JSONata に、深刻な脆弱性が発見された。この脆弱性 CVE-2024-27307 の悪用に成功した攻撃者は、このライブラリに依存するアプリケーション内で、悪意のコードをリモートから実行するという、深刻なセキュリティ・リスクを引き起こす可能性がある。


この脆弱性は、JSONata が特定の式を処理する方法に起因する。バージョン 1.4.0 以降のライブラリは、Prototype Pollution と呼ばれる攻撃を受けやすい。特別に細工された JSONata 式を提供する攻撃者が、Object コンストラクタとプロトタイプのプロパティを上書きする可能性を得る。この操作により、サービス拒否攻撃/任意のコード実行が生じる他に、予測不能なシステム動作などの結果が引き起こされる可能性がある。

Cloudflare のセキュリティ研究者である Albert Pedersen が、このセキュリティ上の欠陥を発見/報告したとされる。

想定される影響

ユーザーから提供される JSONata 式を処理する、すべてのアプリケーションに脆弱性が存在する可能性がある。悪用が成功した場合の影響としては、コード実行の可能性もあるため、重大な懸念事項となる。脆弱性 CVE-2024-27307 の深刻度は、CVSSv3.1 で Critical と評価されている。

緩和策

幸いなことに、すでに JSONata の開発者は、この問題に対処している。現時点において、修正された バージョンのライブラリ 1.8.72.0.4 以降が利用可能となっている。JSONata を使用している全ての組織と開発者は、パッチ適用バージョンへと、可能な限り早急にアップデートしてほしい。直ちにアップデートできない場合には、脆弱性を緩和するパッチがリリースされているので、それをインストールしてほしい。

アプリケーションの保護

アプリケーションを保護するためには、潜在的な悪用に対して先行する必要がある。JSONata を使用するアプリケーションを、保護するためのベストプラクティスを以下に紹介する:

  • 迅速なアップデート: JSONata の最新のパッチやアップデートを導入する。
  • 入力の検証: JSONata 式を含めて、ユーザーが提供するデータを常にサニタイズ/検証する。
  • 最小特権: 付与する権限を可能な限り縮小し、信頼できない入力を扱うアプリケーションの実行環境を制限する。