# Documentation Django 5.2.8

# 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).