CVE-2021-32641 : mise à jour de sécurité pour la bibliothèque Auth0 Lock
Date de publication : 4 juin 2021
Numéro CVE : CVE-2021-32641
Présentation
Les versions antérieures (version 11.30.0
incluse) sont vulnérables aux XSS réfléchis. Un attaquant peut exécuter un code arbitraire dans les deux cas de figure suivants :
La fonction
flashMessage
de la bibliothèque est utilisée et les données de l’utilisateur ou les données des paramètres URL sont incorporées dansflashMessage
.
Ou
La fonction
languageDictionary
de la bibliothèque est utilisée et les données de l’utilisateur ou les données des paramètres URL sont incorporées danslanguageDictionary
.
Cela me concerne-t-il?
Cette vulnérabilité vous concerne si votre implémentation correspond à l’une des descriptions suivantes :
Vulnérabilité flashMessage
Vous êtes vulnérable si toutes ces conditions sont réunies :
Vous utilisez une version d’
auth0-lock
11.30.0
ou antérieure.Vous utilisez la fonction
flashMessage
.Les données fournies par l’utilisateur ou les données tirées des paramètres URL sont incorporées dans
flashMessage
.
Voici un exemple d’extrait vulnérable dans lequel des paramètres de requête sont utilisés pour générer la propriété text
de flashMessage
:
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?
Vulnérabilité languageDictionary
Vous êtes vulnérable si toutes ces conditions sont réunies :
Vous utilisez une version d’
auth0-lock
11.30.0
ou antérieure.Vous utilisez la fonction
languageDictionary
.Les données fournies par l’utilisateur ou les données tirées des paramètres URL sont utilisées dans le champ
languageDictionary
.
Voici un exemple d’extrait vulnérable qui utilise des paramètres de requête pour générer la propriété socialLoginInstructions
d’un champ languageDictionary
:
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?
Comment résoudre ce problème?
Passez à la version 11.30.1
d’auth0-Lock
.
Cette mise à jour aura-t-elle des répercussions sur mes utilisateurs?
Le correctif utilise DOMPurify pour assainir les entrées flashMessage
et languageDictionary
. Cela supprime tout élément JavaScript de ces champs, comme les balises de script
ou des attributs onclick
.