概要
脆弱性名(Ja) | Lodash < 4.17.12 のプロトタイプ汚染 |
脆弱性名(En) | Lodash < 4.17.12 Prototype Pollution |
ID | 113008 |
危険度 | Critical |
ファミリー | Component Vulnerability |
説明
Lodashは、JavaScriptでデータ操作や関数操作を簡素化するためのユーティリティライブラリです。
特に、配列、オブジェクト、文字列操作などを効率化し、複雑な操作をシンプルな関数呼び出しで実現できるため、多くの開発者に愛用されています。
バージョン4.17.12より前のLodashには、defaultsDeep
関数を使用する際にこのプロトタイプ汚染の脆弱性が存在します。
プロトタイプ汚染とは、攻撃者がオブジェクトのプロトタイプに不正なプロパティを追加することで、プログラム全体の動作を変更できる脆弱性です。
リスク
プロトタイプ汚染を利用されると、攻撃者はアプリケーションの内部プロパティに不正アクセスできるため、アプリケーションの挙動を操作し、予期せぬ動作を引き起こす可能性があります。
当脆弱性により、ユーザー情報の漏洩やデータの改ざん、サービス妨害(DoS)攻撃など、さまざまなリスクが生じることがあります。特に、バックエンドでLodashを使用するNode.jsアプリケーションが影響を受けやすく、重大なセキュリティ脆弱性を引き起こします。
検出トリガー
- Lodashのバージョンが4.17.12より古い場合
- 「検出されたテクノロジー」にて、Lodash(v <4.17.12)が検出している。
- 該当ページは分かるが、どの部分で使われているか分からない場合、
tenable解説「検出されたテクノロジー」で検出された箇所を特定する
をご参照ください。
- 該当ページは分かるが、どの部分で使われているか分からない場合、
対策
案1: Lodashのアップグレード(推奨)
Lodashを最新の4.17.12以降のバージョンにアップグレードすることで、プロトタイプ汚染の脆弱性を修正します。パッケージマネージャーを利用して以下のコマンドでアップグレードできます。
npm install lodash@latest
案2: 入力データのバリデーション
アプリケーション側でオブジェクトのプロパティ変更を厳密に管理し、信頼できないデータがオブジェクトのプロトタイプにアクセスすることを防ぐために、入力データのバリデーションを強化します。
関連リンク
危険度が脆弱性ツールによって異なる場合があります。
Tenable Plugin | https://jp.tenable.com/plugins/was/113008 |
GitHub Advisory Database | https://github.com/advisories/GHSA-jf85-cpcp-j695 |
CVE | https://nvd.nist.gov/vuln/detail/CVE-2019-10744 |