Vulnérabilité critique dans Django

Date de publication :

Une vulnérabilité a été découverte dans Django permettant à un attaquant distant de voler des comptes utilisateurs grâce à la fonctionnalité de réinitialisation des mots de passe.

CVE-2019-19844 [Score CVSS v3 : 9.8] : Une vulnérabilité dans Django permet à un attaquant distant de récupérer un jeton de réinitialisation de mot de passe d’un utilisateur en utilisant la fonction de mot de passe oublié. 

Lorsqu’un utilisateur demande la réinitialisation du mot de passe à travers le formulaire dédié, Django normalise la casse de l’adresse email saisie.

Cependant, certains caractères Unicode peuvent avoir des collisions lors de cette transformation.

Un attaquant pourrait créer une adresse mail dont la version normalisée correspondant à un compte utilisateur existant. Ainsi, l'attaquant recevra le jeton de réinitialisation du mot de passe à la place de l'utilisateur.

Informations

La faille est activement exploitée :

Un correctif existe :

Une mesure de contournement existe :

Risques

Risques

  • Vol de comptes

Criticité

  • Score CVSS v3 : 9.8

Existence d’un code d‘exploitation

  • Le code d'exploitation est trouvable sur Github 

Composants vulnérables

  • Django 3.0
  • Django 2.2
  • Django 1.11

CVE

Solutions ou recommandations

Mise en place de correctifs de sécurité

  • Mettre à jour Django 1.11 à la version 1.11.27 ou à une version supérieure.
  • Mettre à jour Django 2.2 à la version 2.2.9 ou à une version supérieure.
  • Mettre à jour Django 3.0 à la version 3.0.1 ou à une version supérieure.

Solution de contournement

  • Aucune solution de contournement n’est disponible.