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 typecheckbox
avec une valeurplaceholder
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 :
La propriété
placeholder
existante est désormais traitée comme du texte brut pour atténuer le problème.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.