Bug 1311438 (CVE-2016-2513) - CVE-2016-2513 python-django: User enumeration through timing difference on password hasher work factor upgrade
Summary: CVE-2016-2513 python-django: User enumeration through timing difference on pa...
Keywords:
Status: CLOSED ERRATA
Alias: CVE-2016-2513
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
URL:
Whiteboard:
Depends On: 1314827 1314828 1314830 1314831 1314832 1315210 1315212 1315214 1315215 1315216 1315219 1315220
Blocks: 1311442
TreeView+ depends on / blocked
 
Reported: 2016-02-24 09:25 UTC by Adam Mariš
Modified: 2021-02-17 04:18 UTC (History)
28 users (show)

Fixed In Version: python-django 1.8.10, python-django 1.9.3
Doc Type: Bug Fix
Doc Text:
A timing attack flaw was found in the way Django's PBKDF2PasswordHasher performed password hashing. Passwords hashed with an older version of PBKDF2PasswordHasher used less hashing iterations, and thus allowed an attacker to enumerate existing users based on the time differences in the login requests.
Clone Of:
Environment:
Last Closed: 2016-04-08 05:48:39 UTC
Embargoed:


Attachments (Terms of Use)
Upstream patch 1.8.x (14.43 KB, patch)
2016-02-24 09:28 UTC, Adam Mariš
no flags Details | Diff
Upstream patch 1.9.x (16.79 KB, patch)
2016-02-24 09:29 UTC, Adam Mariš
no flags Details | Diff
Upstream patch master (16.63 KB, patch)
2016-02-24 09:30 UTC, Adam Mariš
no flags Details | Diff


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2016:0502 0 normal SHIPPED_LIVE Moderate: python-django security update 2016-03-24 05:10:28 UTC
Red Hat Product Errata RHSA-2016:0503 0 normal SHIPPED_LIVE Moderate: python-django security update 2016-03-24 05:10:21 UTC
Red Hat Product Errata RHSA-2016:0504 0 normal SHIPPED_LIVE Moderate: python-django security update 2016-03-24 05:10:13 UTC
Red Hat Product Errata RHSA-2016:0505 0 normal SHIPPED_LIVE Moderate: python-django security update 2016-03-24 05:10:05 UTC
Red Hat Product Errata RHSA-2016:0506 0 normal SHIPPED_LIVE Moderate: python-django security update 2016-03-24 05:09:57 UTC

Description Adam Mariš 2016-02-24 09:25:17 UTC
A timing difference between login requests of nonexistent users and users who haven't logged in for a certain time was found.

In each major version of Django since 1.6, the default number of iterations for the ``PBKDF2PasswordHasher`` and its subclasses has increased. Passwords of user who haven't logged in since the iterations were increased, are encoded in an older number of iterations, which creates the timing difference between login requests. The first time a user logs in after an iterations increase, their password is updated with the new iterations and there is no longer a timing difference.

However, if there are different password hashes in the database (such as SHA1 hashes from users who haven't logged in since the default hasher switched to PBKDF2 in Django 1.4), the timing difference on a login request for these users may be even greater and this fix doesn't remedy that difference (or any difference when changing hashers).

Comment 1 Adam Mariš 2016-02-24 09:28:57 UTC
Created attachment 1130107 [details]
Upstream patch 1.8.x

Comment 2 Adam Mariš 2016-02-24 09:29:51 UTC
Created attachment 1130109 [details]
Upstream patch 1.9.x

Comment 3 Adam Mariš 2016-02-24 09:30:50 UTC
Created attachment 1130111 [details]
Upstream patch master

Comment 5 Adam Mariš 2016-03-03 12:34:43 UTC
External Reference:

https://www.djangoproject.com/weblog/2016/mar/01/security-releases/

Comment 7 Adam Mariš 2016-03-04 16:08:12 UTC
Created Django14 tracking bugs for this issue:

Affects: epel-6 [bug 1314830]

Comment 8 Adam Mariš 2016-03-04 16:08:24 UTC
Created python-django15 tracking bugs for this issue:

Affects: epel-6 [bug 1314831]

Comment 9 Adam Mariš 2016-03-04 16:08:36 UTC
Created python-django tracking bugs for this issue:

Affects: fedora-all [bug 1314828]
Affects: epel-7 [bug 1314832]

Comment 12 Summer Long 2016-03-08 05:41:53 UTC
Acknowledgments:

Name: the Django project

Comment 13 Fedora Update System 2016-03-17 20:52:45 UTC
python-django-1.8.11-1.fc23 has been pushed to the Fedora 23 stable repository. If problems still persist, please make note of it in this bug report.

Comment 14 Fedora Update System 2016-03-17 21:20:35 UTC
python-django-1.8.11-1.fc22 has been pushed to the Fedora 22 stable repository. If problems still persist, please make note of it in this bug report.

Comment 15 errata-xmlrpc 2016-03-24 01:10:52 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux OpenStack Platform 5.0 (Icehouse) for RHEL 7

Via RHSA-2016:0506 https://rhn.redhat.com/errata/RHSA-2016-0506.html

Comment 16 errata-xmlrpc 2016-03-24 01:11:37 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux OpenStack Platform 6.0 (Juno) for RHEL 7

Via RHSA-2016:0505 https://rhn.redhat.com/errata/RHSA-2016-0505.html

Comment 17 errata-xmlrpc 2016-03-24 01:12:27 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux OpenStack Platform 7.0 (Kilo) for RHEL 7

Via RHSA-2016:0504 https://rhn.redhat.com/errata/RHSA-2016-0504.html

Comment 18 errata-xmlrpc 2016-03-24 01:13:13 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux OpenStack Platform 7.0 Operational Tools for RHEL 7

Via RHSA-2016:0503 https://rhn.redhat.com/errata/RHSA-2016-0503.html

Comment 19 errata-xmlrpc 2016-03-24 01:13:58 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux OpenStack Platform 5.0 (Icehouse) for RHEL 6

Via RHSA-2016:0502 https://rhn.redhat.com/errata/RHSA-2016-0502.html


Note You need to log in before you can comment on or make changes to this bug.