注目★★★★★GitHub Advisory
JSONata にプロトタイプ汚染経由の任意コード実行、2.2.0 で修正
30秒で把握
- 1JSONata に lookup 関数の hasOwnProperty チェック欠落による任意コード実行脆弱性
- 2プロトタイプ汚染経由で constructor へアクセスし OS コマンド実行が可能・認証前に悪用可能
- 32.2.0 および 1.8.8 で修正済・利用チームは即パッチ適用を完了すべき
要約
JSONata 2.2.0 および 1.8.8 以前のバージョンで、lookup 関数に hasOwnProperty チェックが欠落していたため、細工された JSONata 式で任意のコード実行が可能だった。攻撃者はプロトタイプ汚染を悪用し、__proto__ を経由して constructor にアクセスし、child_process.execSync() で OS コマンドを実行できた。修正は PR #794 で実装され、2.2.0 および 1.8.8 リリースに含まれている。
あなたへの影響
JSONata を利用する Node.js アプリケーションチームは、即座に 2.2.0 (または 1.8.8) へ更新し、本番環境で実行されているバージョンを確認・パッチ適用を完了すべき。
推奨:特にユーザーが JSONata 式を入力・カスタマイズできる機能がある場合は緊急対応が必要。