> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> CVE-2019-20174: Auth0 Lockライブラリのセキュリティ更新

# CVE-2019-20174: Auth0 Lockライブラリのセキュリティ更新

**公開日**: 2020年1月30日

**CVE番号**: CVE-2019-20174

**謝辞**: Muhamad Visat

<div id="overview">
  ## 概要
</div>

Auth0 Lock バージョン 11.20.4 以前では、生成される HTML が適切にサニタイズされていませんでした。`additionalSignUpFields` カスタマイズオプションを使用してサインアップダイアログにチェックボックスを追加し、信頼できないソース (クエリパラメーターなど) から取得した `placeholder` プロパティを渡している場合、サインアップページでクロスサイトスクリプティング (XSS) が発生する可能性がありました。

<div id="am-i-affected">
  ## 影響を受けますか？
</div>

次の条件がすべて当てはまる場合、この脆弱性の影響を受けます。

* Auth0 Lock バージョン 11.20.4 以前を使用している。
* Lock の初期化時に `additionalSignUpFields` をオプションとして渡しており、その中に、信頼できないソースから取得した `placeholder` 値を持つ `checkbox` 型のフィールドが含まれている。

脆弱なスニペットの例を次に示します。この例では、`placeholder` 値の一部が `name` クエリパラメーターでユーザーにより制御されています。

```html lines theme={null}
<script>
    var params = new URLSearchParams(window.location.search);
    var options = {
        auth: {
            redirectUrl: 'http://localhost:12345/callback',
            responseType: 'code',
            params: {
                scope: 'openid email',
            },
        },
        additionalSignUpFields: [{
            name: 'agree',
            type: 'checkbox',
            placeholder: "I agree to Terms & Conditions for " + params.get('name'),
        }],
    };
    var lock = new Auth0Lock('<CLIENT_ID>', '<TENANT_NAME>.auth0.com', options);
    lock.show({
        allowShowPassword: true,
        initialScreen: 'signUp',
    });
</script>
```

<div id="how-to-fix-that">
  ## どうすれば修正できますか？
</div>

Auth0 の Lock サインインソリューションを使用している開発者は、バージョン 11.21.0 以降にアップグレードする必要があります。バージョン 11.21.0 では、次の 2 つの変更が導入されています。

1. この問題を軽減するため、既存の `placeholder` プロパティはプレーンテキストとして扱われるようになりました。
2. 新たに `placeholderHTML` プロパティが導入されました。これは、どの程度の制御が可能かを明示するものであり、その値には信頼できるソースから取得したもののみを指定する必要があります。

<div id="will-this-update-impact-my-users">
  ## この更新はユーザーに影響しますか？
</div>

この修正は Auth0 Lock ウィジェットに対するパッチであり、アプリケーションコードの変更が必要になる場合があります。ただし、ユーザーやその現在の状態、既存のセッションには影響しません。

信頼できるソースの HTML コンテンツで `placeholder` プロパティを使用している開発者は、同じユーザーエクスペリエンスを維持するため、`placeholderHTML` プロパティを使用してください。
