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に組み込まれている。

以下は、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);

Was this helpful?

/

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();

Was this helpful?

/

修正方法

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

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

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