JSONata において、細工された JSONata 式を処理する際に任意のコードが実行可能となる脆弱性が発見された。この問題は、lookup 関数内での hasOwnProperty チェックが欠如していることに起因する。攻撃者が悪意のある式を evaluate 関数に渡して評価させることで、アプリケーションを実行している Node.js プロセス上で任意のコマンドを実行できる可能性がある。既に概念実証(PoC)コードが公開されており、悪用が容易な状態である。
対象ソフト
JSONata は JSON データのクエリ、変換、抽出を行うための軽量なクエリ言語および JavaScript ライブラリである。Node.js 環境などでデータの加工やフィルタリングに広く利用されている。
影響
攻撃者が用意した不正な式を実行することで、サーバー上で任意のシステムコマンドが実行され、機密データの窃取、システム設定の改ざん、あるいはシステムの完全な制御を奪われる恐れがある。
対応策
jsonata をバージョン 1.8.8 または 2.2.0 以降にアップグレードすること。