Notes de publication de Django 4.0.1

4 janvier 2022

Django 4.0.1 corrige un problème de sécurité de sévérité moyenne, deux problèmes de sécurités de sévérité basse ainsi que plusieurs bogues dans 4.0.

CVE-2021-45115 : possibilité de déni de service dans UserAttributeSimilarityValidator

UserAttributeSimilarityValidator provoquait une surcharge significative lorsqu’il évaluait un mot de passe artificiellement long relativement aux valeurs comparées. Dans le cas où l’accès à l’enregistrement des utilisateurs était non restreint, ceci se révélait être un vecteur potentiel d’attaque par déni de service.

Afin de combler cette faille, les valeurs relativement longues sont dorénavant ignorées par UserAttributeSimilarityValidator.

La sévérité de cette faille est jugée comme « moyenne » selon la politique de sécurité de Django.

CVE-2021-45116: divulgation potentielle d’informations dans le filtre de gabarit dictsort

Au moyen de l’exploitation de la logique de résolution de variables du langage de gabarit de Django, le filtre de gabarit dictsort était potentiellement vulnérable à une divulgation d’informations ou à des appels de méthodes non désirés, si une certaine clé malveillante était transmise.

Afin d’empêcher cette possibilité, dictsort utilise dorénavant une logique de résolution restreinte, qui n’appelle pas de méthodes et ne permet plus les indexations de dictionnaires.

Pour rappel, toutes les données non fiables provenant des utilisateurs doivent être validées avant d’être réutilisées.

La sévérité de cette faille est jugée comme « basse » selon la politique de sécurité de Django.

CVE-2021-31542 : traversée potentielle de répertoires via Storage.save()

Storage.save() permettait une traversée de répertoires si des noms de fichiers malveillants étaient transmis.

La sévérité de cette faille est jugée comme « basse » selon la politique de sécurité de Django.

Correction de bogues

  • Fixed a regression in Django 4.0 that caused a crash of assertFormsetError() on a formset named form (#33346).
  • Correction d’un bogue dans Django 4.0 provoquant le plantage avec des valeurs booléennes dans le moteur de cache RedisCache (#33361).
  • Relâchement d’un contrôle ajouté dans Django 4.0 afin de permettre à nouveau d’utiliser un objet HttpRequest non standard dans les décorateurs django.views.decorators.cache.cache_control() et never_cache() (#33350).
  • Correction d’une régression dans Django 4.0 provoquant la création de mauvaises migrations pour les modèles référençant des modèles interchangeables tels que auth.User (#33366).
  • Correction d’un bogue de longue date dans Collections géométriques et Polygon qui provoquait un plantage sur certaines plates-formes (signalé sur macOS basé sur l’architecture ARM64) (#32600).
Back to Top