In accordance with our security release policy, the Django team is issuing multiple releases -- Django 1.4.22, 1.7.10, and 1.8.4. These releases are now available on PyPI and our download page. These releases address a security issue detailed below. We encourage all users of Django to upgrade as soon as possible. The Django master branch has also been updated.
Denial-of-service possibility in logout() view by filling session store
Previously, a session could be created when anonymously accessing the django.contrib.auth.views.logout view (provided it wasn't decorated with django.contrib.auth.decorators.login_required as done in the admin). This could allow an attacker to easily create many new session records by sending repeated requests, potentially filling up the session store or causing other users' session records to be evicted.
The django.contrib.sessions.middleware.SessionMiddleware has been modified to no longer create empty session records.
This portion of the fix has been assigned CVE-2015-5963.
Additionally, on the 1.4 and 1.7 series only, the contrib.sessions.backends.base.SessionBase.flush() and cache_db.SessionStore.flush() methods have been modified to avoid creating a new empty session. Maintainers of third-party session backends should check if the same vulnerability is present in their backend and correct it if so.
This portion of the fix has been assigned CVE-2015-5964. Anyone reporting a similar vulnerability in a third-party session backend should not use this CVE ID.
Thanks Lin Hua Cheng for reporting the issue.
Affected supported versions
- Django master development branch
- Django 1.8
- Django 1.7
- Django 1.4
Reminder that security support for Django 1.4 ends October 1, 2015.
Per our supported versions policy, Django 1.5 and 1.6 are no longer receiving security updates.
Resolution
Patches have been applied to Django's master development branch and to the 1.4, 1.7, and 1.8 release branches, which resolve the issues described above. The patches may be obtained directly from the following changesets:
- On the development master branch
- On the 1.8 release branch
- On the 1.7 release branch
- On the 1.4 release branch
The following new releases have been issued:
- Django 1.8.4 (download Django 1.8.4 | 1.8.4 checksums)
- Django 1.7.10 (download Django 1.7.10 | 1.7.10 checksums)
- Django 1.4.22 (download Django 1.4.22 | 1.4.22 checksums)
The PGP key ID used for these releases is Tim Graham: 1E8ABDC773EDE252.
General notes regarding security reporting
As always, we ask that potential security issues be reported via private email to security@djangoproject.com, and not via Django's Trac instance or the django-developers list. Please see our security policies for further information.