Notes de publication de Django 5.1.1

September 3, 2024

Django 5.1.1 fixes one security issue with severity « moderate », one security issue with severity « low », and several bugs in 5.1.

CVE-2024-45230: Potential denial-of-service vulnerability in django.utils.html.urlize()

urlize and urlizetrunc were subject to a potential denial-of-service attack via very large inputs with a specific sequence of characters.

CVE-2024-45231: Potential user email enumeration via response status on password reset

Due to unhandled email sending failures, the PasswordResetForm class allowed remote attackers to enumerate user emails by issuing password reset requests and observing the outcomes.

To mitigate this risk, exceptions occurring during password reset email sending are now handled and logged using the django.contrib.auth logger.

Correction de bogues

  • Correction d’une régression dans Django 5.1 provoquant le plantage de Window() quand une séquence vide est passée au paramètre order_by , ainsi qu’un plantage de Prefetch() avec un jeu de requête segmenté sans ordre de tri (#35665).

  • Correction d’une régression dans Django 5.1 où un nouveau champ usable_password a été ajouté dans BaseUserCreationForm (et ses sous-classes). Un nouveau formulaire AdminUserCreationForm avec ce champ a été ajouté, pour isoler cette fonctionnalité au site d’administration pour lequel elle était conçue (#35678).

  • Adjusted the deprecation warning stacklevel in Model.save() and Model.asave() to correctly point to the offending call site (#35060).

  • Adjusted the deprecation warning stacklevel when using OS_OPEN_FLAGS in FileSystemStorage to correctly point to the offending call site (#35326).

  • Adjusted the deprecation warning stacklevel in FieldCacheMixin.get_cache_name() to correctly point to the offending call site (#35405).

  • Restored, following a regression in Django 5.1, the ability to override the timezone and role setting behavior used within the init_connection_state method of the PostgreSQL backend (#35688).

  • Fixed a bug in Django 5.1 where variable lookup errors were logged when rendering admin fieldsets (#35716).