========================== Django 4.0.1 release notes ========================== *January 4, 2022* Django 4.0.1 fixes one security issue with severity "medium", two security issues with severity "low", and several bugs in 4.0. CVE-2021-45115: Denial-of-service possibility in ``UserAttributeSimilarityValidator`` ===================================================================================== :class:`.UserAttributeSimilarityValidator` incurred significant overhead evaluating submitted password that were artificially large in relative to the comparison values. On the assumption that access to user registration was unrestricted this provided a potential vector for a denial-of-service attack. In order to mitigate this issue, relatively long values are now ignored by ``UserAttributeSimilarityValidator``. This issue has severity "medium" according to the :ref:`Django security policy `. CVE-2021-45116: Potential information disclosure in ``dictsort`` template filter ================================================================================ Due to leveraging the Django Template Language's variable resolution logic, the :tfilter:`dictsort` template filter was potentially vulnerable to information disclosure or unintended method calls, if passed a suitably crafted key. In order to avoid this possibility, ``dictsort`` now works with a restricted resolution logic, that will not call methods, nor allow indexing on dictionaries. As a reminder, all untrusted user input should be validated before use. This issue has severity "low" according to the :ref:`Django security policy `. CVE-2021-45452: Potential directory-traversal via ``Storage.save()`` ==================================================================== ``Storage.save()`` allowed directory-traversal if directly passed suitably crafted file names. This issue has severity "low" according to the :ref:`Django security policy `. Bugfixes ======== * Fixed a regression in Django 4.0 that caused a crash of ``assertFormsetError()`` on a formset named ``form`` (:ticket:`33346`). * Fixed a bug in Django 4.0 that caused a crash on booleans with the ``RedisCache`` backend (:ticket:`33361`). * Relaxed the check added in Django 4.0 to reallow use of a duck-typed ``HttpRequest`` in ``django.views.decorators.cache.cache_control()`` and ``never_cache()`` decorators (:ticket:`33350`). * Fixed a regression in Django 4.0 that caused creating bogus migrations for models that reference swappable models such as ``auth.User`` (:ticket:`33366`). * Fixed a long standing bug in :ref:`geos-geometry-collections` and :class:`~django.contrib.gis.geos.Polygon` that caused a crash on some platforms (reported on macOS based on the ``ARM64`` architecture) (:ticket:`32600`).