概要
脆弱性名(Ja) | Lodash < 4.17.20 のプロトタイプ汚染 |
脆弱性名(En) | Lodash < 4.17.20 Prototype Pollution |
ID | 113007 |
危険度 | Critical |
ファミリー | Component Vulnerability |
説明
Lodashは、JavaScriptでデータ操作や関数操作を簡素化するためのユーティリティライブラリです。
特に、配列、オブジェクト、文字列操作などを効率化し、複雑な操作をシンプルな関数呼び出しで実現できるため、多くの開発者に愛用されています。
バージョン4.17.20より前のLodashには、zipObjectDeep関数を悪用することで、オブジェクトのプロトタイプを汚染し、アプリケーションの挙動を不正に操作できるプロトタイプ汚染の脆弱性が存在します。
プロトタイプ汚染とは、攻撃者がオブジェクトのプロトタイプに不正なプロパティを追加することで、プログラム全体の動作を変更できる脆弱性です。
リスク
プロトタイプ汚染の脆弱性は、特にJavaScriptベースのアプリケーションに深刻な影響を与える可能性があります。
攻撃者は、オブジェクトのプロトタイプチェーンを改ざんすることで、任意のコード実行、データ漏洩、サービスの停止などの深刻なリスクが生じます。
検出トリガー
- Lodashのバージョンが4.17.20より古い場合
- 「検出されたテクノロジー」にて、Lodash(v <4.17.20)が検出している。
- 該当ページは分かるが、どの部分で使われているか分からない場合、
tenable解説「検出されたテクノロジー」で検出された箇所を特定する
をご参照ください。
- 該当ページは分かるが、どの部分で使われているか分からない場合、
対策
Lodashのアップグレード(推奨)
Lodashを最新の4.17.20以降のバージョンにアップグレードすることで、プロトタイプ汚染の脆弱性を修正します。パッケージマネージャーを利用して以下のコマンドでアップグレードできます。
npm install lodash@4.17.20
# 最新バージョンの利用の場合:
npm install lodash@latest
(その他)入力データのバリデーション
ユーザー入力や外部データに対して厳密なサニタイズを行い、プロトタイプ汚染を防ぐ対策を取ることが推奨されます。
関連リンク
危険度が脆弱性ツールによって異なる場合があります。
Tenable Plugin | https://jp.tenable.com/plugins/was/113007 |
GitHub Advisory Database | https://github.com/advisories/GHSA-p6mc-m468-83gw |
CVE | https://nvd.nist.gov/vuln/detail/CVE-2020-8203 |