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

# CVE-2021-32641 : mise à jour de sécurité pour la bibliothèque Auth0 Lock

> 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

<div id="overview">
  ## Présentation
</div>

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 dans `flashMessage`.

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 dans `languageDictionary`.

<div id="am-i-affected">
  ## Cela me concerne-t-il?
</div>

Cette vulnérabilité vous concerne si votre implémentation correspond à l’une des descriptions suivantes :

<div id="flashmessage-vulnerability">
  ### Vulnérabilité flashMessage
</div>

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

```javascript lines theme={null}
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);
```

<div id="languagedictionary-vulnerability">
  ### Vulnérabilité languageDictionary
</div>

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

```javascript lines theme={null}
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();
```

<div id="how-to-fix-that">
  ## Comment résoudre ce problème?
</div>

Passez à la version `11.30.1` d’`auth0-Lock`.

<div id="will-this-update-impact-my-users">
  ## Cette mise à jour aura-t-elle des répercussions sur mes utilisateurs?
</div>

Le correctif utilise [DOMPurify](https://github.com/cure53/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`.
