メインコンテンツへスキップ
公開日 :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に組み込まれている。
以下は、flashMessagetextプロパティに入力するためにクエリパラメーターが使用されている脆弱なスニペットの例です。
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);

languageDictionaryの脆弱性

以下の条件がすべて満たされる場合は、脆弱です。
  • auth0-lockバージョン11.30.0以前のものを使用している。
  • languageDictionary機能を使用している。
  • ユーザー入力またはURLパラメーターからのデータが、languageDictionaryプロパティに使用されている。
以下は、languageDictionarysocialLoginInstructionsプロパティに入力するためにクエリパラメーターを使用している脆弱なスニペットの例です。
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();

修正方法

auth0-lockバージョン11.30.1にアップグレードしてください。

この更新はユーザーに影響を与えますか?

この修正は、flashMessageおよびlanguageDictionary入力をサニタイズするために、DOMPurifyを使用します。scriptタグまたはonclick属性など、これらのフィールドのJavaScript.を削除します。
I