Client-Side Prototype Pollution

high Web Application Scanning プラグイン ID 112719

言語:

概要

クライアント側のプロトタイプ汚染

説明

プロトタイプベースのプログラミング言語は、新しいオブジェクトを作成するために、プロトタイプとして使用されるオブジェクトを定義し、その後拡張または複製するプロセスに依存しています。インスタンス化されると、これらのオブジェクトはプロトタイプのプロパティとメソッドを継承します。

JavaScript は、サーバー側コンポーネントとクライアント側コンポーネントの両方において、最新の Web アプリケーションで最も一般的なプロトタイプベースの言語の 1 つです。ほとんどすべての JavaScript オブジェクトは Object のインスタンスであり、Object プロトタイプのプロパティとメソッドを継承します。

攻撃者が Web ブラウザのコンテキストで Object プロトタイプのプロパティを変更できる場合に、クライアント側のプロトタイプ汚染の脆弱性が存在し、アプリケーションユーザーがクロスサイトスクリプティングやサービス拒否攻撃などのさらなる問題にさらされます。

ソリューション

一部の操作 (オブジェクトのマージや複製など) 中にプロトタイプやコンストラクターなどのプロパティを利用する場合に Object プロトタイプが変更されないよう、入力を適切にサニタイズする必要があります。JavaScript オブジェクトは、Object.create (null) コンストラクターを使用して、プロトタイプなしで明示的にインスタンス化することもできます。最後に、Map プロトタイプキーは Object プロトタイプキーを含まないため、汚染の発生を防ぐためにキーと値のストレージとして使用することを推奨します。

関連情報

https://research.securitum.com/prototype-pollution-and-bypassing-client-side-html-sanitizers/

https://portswigger.net/daily-swig/prototype-pollution-the-dangerous-and-underrated-vulnerability-impacting-javascript-applications

https://snyk.io/blog/snyk-research-team-discovers-severe-prototype-pollution-security-vulnerabilities-affecting-all-versions-of-lodash/

プラグインの詳細

深刻度: High

ID: 112719

タイプ: remote

ファミリー: Web Applications

公開日: 2021/5/6

更新日: 2022/2/21

スキャン テンプレート: pci, scan

リスク情報

VPR

リスクファクター: Medium

スコア: 5.9

CVSS v2

リスクファクター: Medium

Base Score: 6.5

ベクトル: CVSS2#AV:N/AC:L/Au:S/C:P/I:P/A:P

CVSS スコアのソース: CVE-2021-20083

CVSS v3

リスクファクター: High

Base Score: 8.8

ベクトル: CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

CVSS スコアのソース: CVE-2021-20083

参照情報

CVE: CVE-2021-20083, CVE-2021-20084, CVE-2021-20089, CVE-2021-20085, CVE-2021-20087, CVE-2021-20088, CVE-2021-20086