5.0.7.txt 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. ==========================
  2. Django 5.0.7 release notes
  3. ==========================
  4. *July 9, 2024*
  5. Django 5.0.7 fixes two security issues with severity "moderate", two security
  6. issues with severity "low", and several bugs in 5.0.6.
  7. CVE-2024-38875: Potential denial-of-service vulnerability in ``django.utils.html.urlize()``
  8. ===========================================================================================
  9. :tfilter:`urlize` and :tfilter:`urlizetrunc` were subject to a potential
  10. denial-of-service attack via certain inputs with a very large number of
  11. brackets.
  12. CVE-2024-39329: Username enumeration through timing difference for users with unusable passwords
  13. ================================================================================================
  14. The :meth:`~django.contrib.auth.backends.ModelBackend.authenticate()` method
  15. allowed remote attackers to enumerate users via a timing attack involving login
  16. requests for users with unusable passwords.
  17. CVE-2024-39330: Potential directory-traversal via ``Storage.save()``
  18. ====================================================================
  19. Derived classes of the :class:`~django.core.files.storage.Storage` base class
  20. which override :meth:`generate_filename()
  21. <django.core.files.storage.Storage.generate_filename()>` without replicating
  22. the file path validations existing in the parent class, allowed for potential
  23. directory-traversal via certain inputs when calling :meth:`save()
  24. <django.core.files.storage.Storage.save()>`.
  25. Built-in ``Storage`` sub-classes were not affected by this vulnerability.
  26. CVE-2024-39614: Potential denial-of-service vulnerability in ``get_supported_language_variant()``
  27. =================================================================================================
  28. :meth:`~django.utils.translation.get_supported_language_variant` was subject to
  29. a potential denial-of-service attack when used with very long strings
  30. containing specific characters.
  31. To mitigate this vulnerability, the language code provided to
  32. :meth:`~django.utils.translation.get_supported_language_variant` is now parsed
  33. up to a maximum length of 500 characters.
  34. When the language code is over 500 characters, a :exc:`ValueError` will now be
  35. raised if ``strict`` is ``True``, or if there is no generic variant and
  36. ``strict`` is ``False``.
  37. Bugfixes
  38. ========
  39. * Fixed a bug in Django 5.0 that caused a crash of ``Model.full_clean()`` on
  40. unsaved model instances with a ``GeneratedField`` and certain defined
  41. :attr:`Meta.constraints <django.db.models.Options.constraints>`
  42. (:ticket:`35560`).