CVE-2019-20174 : Mise à jour de sécurité pour la bibliothèque Auth0 Lock

Date de publication : 30 janvier 2020

Numéro CVE: CVE-2019-20174

Crédit: Muhamad Visat

Présentation

La version 11.20.4 d’Auth0 Lock et les versions antérieures ne permettaient pas d’assainir correctement le code HTML généré. Les clients qui utilisent l’option de personnalisation additionalSignUpFields pour ajouter une case à cocher à la boîte de dialogue d’inscription et qui transmettent une propriété placeholder obtenue à partir d’une source non fiable (par ex., un paramètre de requête) pouvaient autoriser des scripts intersites (XSS) sur leurs pages d’inscription.

Cela me concerne-t-il?

Cette vulnérabilité vous concerne si toutes les conditions suivantes sont réunies :

  • Vous utilisez la version 11.20.4 ou antérieure d’Auth0 Lock.

  • Vous transmettez additionalSignUpFields en tant qu’option lors de l’initialisation de Lock. Cette option inclut un champ de type checkbox avec une valeur placeholder obtenue à partir d’une source non fiable.

Voici un exemple d’extrait vulnérable où la valeur placeholder est partiellement contrôlée par l’utilisateur à l’aide du paramètre de requête name :

<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>

Was this helpful?

/

Comment résoudre ce problème?

Les développeurs qui utilisent la solution d’authentification Lock d’Auth0 doivent effectuer une mise à jour vers la version 11.21.0 ou supérieure. La version 11.21.0 apporte deux modifications :

  1. La propriété placeholder existante est désormais traitée comme du texte brut pour atténuer le problème.

  2. Une nouvelle propriété placeholderHTML est introduite, qui indique le niveau de contrôle fourni et que sa valeur ne doit être fournie qu’à partir de sources fiables.

Cette mise à jour aura-t-elle des répercussions sur mes utilisateurs?

Ce correctif corrige le gadget logiciel Auth0 Lock et peut nécessiter des modifications dans le code de l’application, mais il n’aura pas d’incidence sur vos utilisateurs, leur état actuel ou les sessions existantes.

Les développeurs qui utilisent la propriété placeholder avec du contenu HTML provenant d’une source fiable doivent désormais utiliser la propriété placeholderHTML pour que les utilisateurs puissent continuer à bénéficier de la même expérience.