CVE-2021-32641:Auth0 Lockライブラリーのセキュリティ更新
公開日:2021年6月4日
CVE番号:CVE-2021-32641
概要
11.30.0
以前のバージョンは、反射型XSSに対して脆弱です。以下のいずれかの場合、攻撃者は任意のコードを実行できます。
ライブラリーの
flashMessage
機能が使用され、かつユーザー入力またはURLパラメーターからのデータがflashMessage
に組み込まれた場合。
または
ライブラリーの
languageDictionary
機能が使用され、かつユーザー入力またはURLパラメーターからのデータがlanguageDictionary
に組み込まれた場合。
自分は影響を受けますか?
この脆弱性は、実装が以下の説明のいずれかに当てはまる場合、影響があります。
flashMessageの脆弱性
以下の条件がすべて満たされる場合は、脆弱です。
auth0-lock
バージョン11.30.0
以前のものを使用している。flashMessage
機能を使用している。ユーザー入力またはURLパラメーターからのデータが
flashMessage
に組み込まれている。
以下は、flashMessage
のtext
プロパティに入力するためにクエリパラメーターが使用されている脆弱なスニペットの例です。
var params = new URLSearchParams(location.search);
var errorMessage = params.get('error__message');
var showParams = {};
if (!!errorMessage === true) {
showParams.flashMessage = {
type: 'error',
text: 'We were unable to log you in. ' + errorMessage,
};
}
lock.show(showParams);
Was this helpful?
languageDictionaryの脆弱性
以下の条件がすべて満たされる場合は、脆弱です。
auth0-lock
バージョン11.30.0
以前のものを使用している。languageDictionary
機能を使用している。ユーザー入力またはURLパラメーターからのデータが、
languageDictionary
プロパティに使用されている。
以下は、languageDictionary
のsocialLoginInstructions
プロパティに入力するためにクエリパラメーターを使用している脆弱なスニペットの例です。
var params = new URLSearchParams(location.search);
var instruction = params.get('instruction');
var options = {
languageDictionary: {
emailInputPlaceholder: "something@youremail.com",
title: "title",
socialLoginInstructions: instruction
},
};
var lock = new Auth0LockPasswordless(
CLIENT_ID,
DOMAIN,
options
);
lock.show();
Was this helpful?
修正方法
auth0-lock
バージョン11.30.1
にアップグレードしてください。
この更新はユーザーに影響を与えますか?
この修正は、flashMessage
およびlanguageDictionary
入力をサニタイズするために、DOMPurifyを使用します。script
タグまたはonclick
属性など、これらのフィールドのJavaScript.を削除します。