From: https://www.djangoproject.com/weblog/2024/jul/09/security-releases/

In accordance with `our security release policy
<https://docs.djangoproject.com/en/dev/internals/security/>`_, the Django
team
is issuing releases for
`Django 5.0.7 <https://docs.djangoproject.com/en/dev/releases/5.0.7/>`_ and
`Django 4.2.14 <https://docs.djangoproject.com/en/dev/releases/4.2.14/>`_.
These releases address the security issues detailed below. We encourage all
users of Django to upgrade as soon as possible.

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

``urlize()`` and ``urlizetrunc()`` were subject to a potential
denial-of-service
attack via certain inputs with a very large number of brackets.

Thanks to Elias Myllymäki for the report.

This issue has severity "moderate" according to the Django security policy.

CVE-2024-39329: Username enumeration through timing difference for users
with unusable passwords
================================================================================================

The ``django.contrib.auth.backends.ModelBackend.authenticate()`` method
allowed remote attackers to enumerate users via a timing attack involving
login
requests for users with unusable passwords.

This issue has severity "low" according to the Django security policy.

CVE-2024-39330: Potential directory-traversal in
django.core.files.storage.Storage.save()
=========================================================================================

Derived classes of the ``django.core.files.storage.Storage`` base class
which
override ``generate_filename()`` without replicating the file path
validations
existing in the parent class, allowed for potential directory-traversal via
certain inputs when calling ``save()``.

Built-in ``Storage`` sub-classes were not affected by this vulnerability.

Thanks to Josh Schneier for the report.

This issue has severity "low" according to the Django security policy.

CVE-2024-39614: Potential denial-of-service in
django.utils.translation.get_supported_language_variant()
========================================================================================================

``get_supported_language_variant()`` was subject to a potential
denial-of-service
attack when used with very long strings containing specific characters.

To mitigate this vulnerability, the language code provided to
``get_supported_language_variant()`` is now parsed up to a maximum length
of 500
characters.

Thanks to `MProgrammer <https://hackerone.com/mprogrammer>`_ for the report.

This issue has severity "moderate" according to the Django security policy.

Affected supported versions
===========================

* Django main branch
* Django 5.1 (currently at beta status)
* Django 5.0
* Django 4.2

Resolution
==========

Patches to resolve the issue have been applied to Django's main, 5.1, 5.0,
and
4.2 branches. The patches may be obtained from the following changesets.

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

* On the `main branch <
https://github.com/django/django/commit/d6664574539c1531612dea833d264ed5c2b04e1e
>`__
* On the `5.1 branch <
https://github.com/django/django/commit/44aef996c8d723198e89ca834cb1d746e2e72d77
>`__
* On the `5.0 branch <
https://github.com/django/django/commit/7285644640f085f41d60ab0c8ae4e9153f0485db
>`__
* On the `4.2 branch <
https://github.com/django/django/commit/79f368764295df109a37192f6182fb6f361d85b5
>`__

CVE-2024-39329: Username enumeration through timing difference for users
with unusable passwords
------------------------------------------------------------------------------------------------

* On the `main branch <
https://github.com/django/django/commit/5d8645857936c142a3973694799c52165e2bdcdb
>`__
* On the `5.1 branch <
https://github.com/django/django/commit/f5d16483f3abfd33e301fb5c2005b80bd6d05aaf
>`__
* On the `5.0 branch <
https://github.com/django/django/commit/07cefdee4a9d1fcd9a3a631cbd07c78defd1923b
>`__
* On the `4.2 branch <
https://github.com/django/django/commit/156d3186c96e3ec2ca73b8b25dc2ef366e38df14
>`__

CVE-2024-39330: Potential directory-traversal in
django.core.files.storage.Storage.save()
-----------------------------------------------------------------------------------------

* On the `main branch <
https://github.com/django/django/commit/fe4a0bbe2088d0c2b331216dad21ccd0bb3ee80d
>`__
* On the `5.1 branch <
https://github.com/django/django/commit/6d36203648a7e14abc89b9aeb8ae9678535b51fb
>`__
* On the `5.0 branch <
https://github.com/django/django/commit/9f4f63e9ebb7bf6cb9547ee4e2526b9b96703270
>`__
* On the `4.2 branch <
https://github.com/django/django/commit/2b00edc0151a660d1eb86da4059904a0fc4e095e
>`__

CVE-2024-39614: Potential denial-of-service in
django.utils.translation.get_supported_language_variant()
--------------------------------------------------------------------------------------------------------

* On the `main branch <
https://github.com/django/django/commit/9e9792228a6bb5d6402a5d645bc3be4cf364aefb
>`__
* On the `5.1 branch <
https://github.com/django/django/commit/e99ccc43429160828814a72067acf47f5fca9c94
>`__
* On the `5.0 branch <
https://github.com/django/django/commit/8e7a44e4bec0f11474699c3111a5e0a45afe7f49
>`__
* On the `4.2 branch <
https://github.com/django/django/commit/17358fb35fb7217423d4c4877ccb6d1a3a40b1c3
>`__


The following releases have been issued
=======================================

* Django 5.0.7 (`download Django 5.0.7
  <https://www.djangoproject.com/m/releases/5.0/Django-5.0.7.tar.gz>`_ |
  `5.0.7 checksums
  <https://www.djangoproject.com/m/pgp/Django-5.0.7.checksum.txt>`_)
* Django 4.2.14 (`download Django 4.2.14
  <https://www.djangoproject.com/m/releases/4.2/Django-4.2.14.tar.gz>`_ |
  `4.2.14 checksums
  <https://www.djangoproject.com/m/pgp/Django-4.2.14.checksum.txt>`_)

The PGP key ID used for this release is Natalia Bidart: `2EE82A8D9470983E <
https://github.com/nessita.gpg>`_

General notes regarding security reporting
==========================================

As always, we ask that potential security issues be reported via private
email
to ``secur...@djangoproject.com``, and not via Django's Trac instance, nor
via
the Django Forum, nor via the django-developers list. Please see `our
security
policies <https://www.djangoproject.com/security/>`_ for further
information.

Reply via email to