mirror of
https://github.com/django/django.git
synced 2025-07-24 05:36:15 +00:00
Fixed CVE-2021-45115 -- Prevented DoS vector in UserAttributeSimilarityValidator.
Thanks Chris Bailey for the report. Co-authored-by: Adam Johnson <me@adamj.eu>
This commit is contained in:
parent
ccafad2e42
commit
968a3d01fa
6 changed files with 92 additions and 15 deletions
|
@ -7,4 +7,16 @@ Django 2.2.26 release notes
|
|||
Django 2.2.26 fixes one security issue with severity "medium" and two security
|
||||
issues with severity "low" in 2.2.25.
|
||||
|
||||
...
|
||||
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
|
||||
<security-disclosure>`.
|
||||
|
|
|
@ -7,4 +7,16 @@ Django 3.2.11 release notes
|
|||
Django 3.2.11 fixes one security issue with severity "medium" and two security
|
||||
issues with severity "low" in 3.2.10.
|
||||
|
||||
...
|
||||
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
|
||||
<security-disclosure>`.
|
||||
|
|
|
@ -7,6 +7,20 @@ Django 4.0.1 release notes
|
|||
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
|
||||
<security-disclosure>`.
|
||||
|
||||
Bugfixes
|
||||
========
|
||||
|
||||
|
|
|
@ -607,10 +607,16 @@ Django includes four validators:
|
|||
is used: ``'username', 'first_name', 'last_name', 'email'``.
|
||||
Attributes that don't exist are ignored.
|
||||
|
||||
The minimum similarity of a rejected password can be set on a scale of 0 to
|
||||
1 with the ``max_similarity`` parameter. A setting of 0 rejects all
|
||||
passwords, whereas a setting of 1 rejects only passwords that are identical
|
||||
to an attribute's value.
|
||||
The maximum allowed similarity of passwords can be set on a scale of 0.1
|
||||
to 1.0 with the ``max_similarity`` parameter. This is compared to the
|
||||
result of :meth:`difflib.SequenceMatcher.quick_ratio`. A value of 0.1
|
||||
rejects passwords unless they are substantially different from the
|
||||
``user_attributes``, whereas a value of 1.0 rejects only passwords that are
|
||||
identical to an attribute's value.
|
||||
|
||||
.. versionchanged:: 2.2.26
|
||||
|
||||
The ``max_similarity`` parameter was limited to a minimum value of 0.1.
|
||||
|
||||
.. class:: CommonPasswordValidator(password_list_path=DEFAULT_PASSWORD_LIST_PATH)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue