Archive of security issuesLink to this heading
Django's development team is strongly committed to responsible reporting and disclosure of security-related issues, as outlined in Django's security policies.
As part of that commitment, we maintain the following historical list of issues which have been fixed and disclosed. For each issue, the list below includes the date, a brief description, the CVE identifier if applicable, a list of affected versions, a link to the full disclosure and links to the appropriate patch(es).
Some important caveats apply to this information:
Lists of affected versions include only those versions of Django which had stable, security-supported releases at the time of disclosure. This means older versions (whose security support had expired) and versions which were in pre-release (alpha/beta/RC) states at the time of disclosure may have been affected, but are not listed.
The Django project has on occasion issued security advisories, pointing out potential security problems which can arise from improper configuration or from other issues outside of Django itself. Some of these advisories have received CVEs; when that is the case, they are listed here, but as they have no accompanying patches or releases, only the description, disclosure and CVE will be listed.
Issues prior to Django's security processLink to this heading
Some security issues were handled before Django had a formalized security process in use. For these, new releases may not have been issued at the time and CVEs may not have been assigned.
August 16, 2006 - CVE 2007-0404Link to this heading
Filename validation issue in translation framework. Full description
Versions affectedLink to this heading
January 21, 2007 - CVE 2007-0405Link to this heading
Apparent "caching" of authenticated user. Full description
Versions affectedLink to this heading
Django 0.95 (patch)
Issues under Django's security processLink to this heading
All other security issues have been handled under versions of Django's security process. These are listed below.
October 26, 2007 - CVE 2007-5712Link to this heading
Denial-of-service via arbitrarily-large Accept-Language header. Full
description
Versions affectedLink to this heading
May 14, 2008 - CVE 2008-2302Link to this heading
XSS via admin login redirect. Full description
Versions affectedLink to this heading
September 2, 2008 - CVE 2008-3909Link to this heading
CSRF via preservation of POST data during admin login. Full description
Versions affectedLink to this heading
July 28, 2009 - CVE 2009-2659Link to this heading
Directory-traversal in development server media handler. Full description
Versions affectedLink to this heading
October 9, 2009 - CVE 2009-3965Link to this heading
Denial-of-service via pathological regular expression performance. Full description
Versions affectedLink to this heading
September 8, 2010 - CVE 2010-3082Link to this heading
XSS via trusting unsafe cookie value. Full description
Versions affectedLink to this heading
Django 1.2 (patch)
December 22, 2010 - CVE 2010-4534Link to this heading
Information leakage in administrative interface. Full description
Versions affectedLink to this heading
December 22, 2010 - CVE 2010-4535Link to this heading
Denial-of-service in password-reset mechanism. Full description
Versions affectedLink to this heading
February 8, 2011 - CVE 2011-0696Link to this heading
CSRF via forged HTTP headers. Full description
Versions affectedLink to this heading
February 8, 2011 - CVE 2011-0697Link to this heading
XSS via unsanitized names of uploaded files. Full description
Versions affectedLink to this heading
February 8, 2011 - CVE 2011-0698Link to this heading
Directory-traversal on Windows via incorrect path-separator handling. Full description
Versions affectedLink to this heading
September 9, 2011 - CVE 2011-4136Link to this heading
Session manipulation when using memory-cache-backed session. Full description
Versions affectedLink to this heading
September 9, 2011 - CVE 2011-4137Link to this heading
Denial-of-service via URLField.verify_exists. Full description
Versions affectedLink to this heading
September 9, 2011 - CVE 2011-4138Link to this heading
Information leakage/arbitrary request issuance via URLField.verify_exists.
Full description
Versions affectedLink to this heading
September 9, 2011 - CVE 2011-4139Link to this heading
Host header cache poisoning. Full description
Versions affectedLink to this heading
September 9, 2011 - CVE 2011-4140Link to this heading
Potential CSRF via Host header. Full description
Versions affectedLink to this heading
This notification was an advisory only, so no patches were issued.
Django 1.2
Django 1.3
July 30, 2012 - CVE 2012-3442Link to this heading
XSS via failure to validate redirect scheme. Full description
Versions affectedLink to this heading
July 30, 2012 - CVE 2012-3443Link to this heading
Denial-of-service via compressed image files. Full description
Versions affectedLink to this heading
July 30, 2012 - CVE 2012-3444Link to this heading
Denial-of-service via large image files. Full description
Versions affectedLink to this heading
October 17, 2012 - CVE 2012-4520Link to this heading
Host header poisoning. Full description
Versions affectedLink to this heading
December 10, 2012 - No CVE 1Link to this heading
Additional hardening of Host header handling. Full description
Versions affectedLink to this heading
December 10, 2012 - No CVE 2Link to this heading
Additional hardening of redirect validation. Full description
Versions affectedLink to this heading
February 19, 2013 - No CVELink to this heading
Additional hardening of Host header handling. Full description
Versions affectedLink to this heading
February 19, 2013 - CVE 2013-1664 / CVE 2013-1665Link to this heading
Entity-based attacks against Python XML libraries. Full description
Versions affectedLink to this heading
February 19, 2013 - CVE 2013-0305Link to this heading
Information leakage via admin history log. Full description
Versions affectedLink to this heading
February 19, 2013 - CVE 2013-0306Link to this heading
Denial-of-service via formset max_num bypass. Full description
Versions affectedLink to this heading
August 13, 2013 - CVE 2013-4249Link to this heading
XSS via admin trusting URLField values. Full description
Versions affectedLink to this heading
Django 1.5 (patch)
August 13, 2013 - CVE 2013-6044Link to this heading
Possible XSS via unvalidated URL redirect schemes. Full description
Versions affectedLink to this heading
September 10, 2013 - CVE 2013-4315Link to this heading
Directory-traversal via ssi template tag. Full description
Versions affectedLink to this heading
September 14, 2013 - CVE 2013-1443Link to this heading
Denial-of-service via large passwords. Full description
Versions affectedLink to this heading
Django 1.4 (patch and Python compatibility fix)
Django 1.5 (patch)
April 21, 2014 - CVE 2014-0472Link to this heading
Unexpected code execution using reverse(). Full description
Versions affectedLink to this heading
April 21, 2014 - CVE 2014-0473Link to this heading
Caching of anonymous pages could reveal CSRF token. Full description
Versions affectedLink to this heading
April 21, 2014 - CVE 2014-0474Link to this heading
MySQL typecasting causes unexpected query results. Full description
Versions affectedLink to this heading
May 18, 2014 - CVE 2014-1418Link to this heading
Caches may be allowed to store and serve private data. Full description
Versions affectedLink to this heading
May 18, 2014 - CVE 2014-3730Link to this heading
Malformed URLs from user input incorrectly validated. Full description
Versions affectedLink to this heading
August 20, 2014 - CVE 2014-0480Link to this heading
reverse() can generate URLs pointing to other hosts. Full description
Versions affectedLink to this heading
August 20, 2014 - CVE 2014-0481Link to this heading
File upload denial of service. Full description
Versions affectedLink to this heading
August 20, 2014 - CVE 2014-0482Link to this heading
RemoteUserMiddleware session hijacking. Full description
Versions affectedLink to this heading
August 20, 2014 - CVE 2014-0483Link to this heading
Data leakage via querystring manipulation in admin. Full description
Versions affectedLink to this heading
January 13, 2015 - CVE 2015-0219Link to this heading
WSGI header spoofing via underscore/dash conflation. Full description
Versions affectedLink to this heading
January 13, 2015 - CVE 2015-0220Link to this heading
Mitigated possible XSS attack via user-supplied redirect URLs. Full description
Versions affectedLink to this heading
January 13, 2015 - CVE 2015-0221Link to this heading
Denial-of-service attack against django.views.static.serve(). Full
description
Versions affectedLink to this heading
January 13, 2015 - CVE 2015-0222Link to this heading
Database denial-of-service with ModelMultipleChoiceField. Full description
Versions affectedLink to this heading
March 9, 2015 - CVE 2015-2241Link to this heading
XSS attack via properties in ModelAdmin.readonly_fields. Full description
Versions affectedLink to this heading
March 18, 2015 - CVE 2015-2316Link to this heading
Denial-of-service possibility with strip_tags(). Full description
Versions affectedLink to this heading
March 18, 2015 - CVE 2015-2317Link to this heading
Mitigated possible XSS attack via user-supplied redirect URLs. Full description
Versions affectedLink to this heading
May 20, 2015 - CVE 2015-3982Link to this heading
Fixed session flushing in the cached_db backend. Full description
Versions affectedLink to this heading
Django 1.8 (patch)
July 8, 2015 - CVE 2015-5143Link to this heading
Denial-of-service possibility by filling session store. Full description
Versions affectedLink to this heading
July 8, 2015 - CVE 2015-5144Link to this heading
Header injection possibility since validators accept newlines in input. Full description
Versions affectedLink to this heading
July 8, 2015 - CVE 2015-5145Link to this heading
Denial-of-service possibility in URL validation. Full description
Versions affectedLink to this heading
Django 1.8 (patch)
August 18, 2015 - CVE 2015-5963 / CVE 2015-5964Link to this heading
Denial-of-service possibility in logout() view by filling session store.
Full description
Versions affectedLink to this heading
November 24, 2015 - CVE 2015-8213Link to this heading
Settings leak possibility in date template filter. Full description
Versions affectedLink to this heading
February 1, 2016 - CVE 2016-2048Link to this heading
User with "change" but not "add" permission can create objects for
ModelAdmin’s with save_as=True. Full description
Versions affectedLink to this heading
Django 1.9 (patch)
March 1, 2016 - CVE 2016-2512Link to this heading
Malicious redirect and possible XSS attack via user-supplied redirect URLs containing basic auth. Full description
Versions affectedLink to this heading
March 1, 2016 - CVE 2016-2513Link to this heading
User enumeration through timing difference on password hasher work factor upgrade. Full description
Versions affectedLink to this heading
July 18, 2016 - CVE 2016-6186Link to this heading
XSS in admin's add/change related popup. Full description
Versions affectedLink to this heading
September 26, 2016 - CVE 2016-7401Link to this heading
CSRF protection bypass on a site with Google Analytics. Full description
Versions affectedLink to this heading
November 1, 2016 - CVE 2016-9013Link to this heading
User with hardcoded password created when running tests on Oracle. Full description
Versions affectedLink to this heading
November 1, 2016 - CVE 2016-9014Link to this heading
DNS rebinding vulnerability when DEBUG=True. Full description
Versions affectedLink to this heading
April 4, 2017 - CVE 2017-7233Link to this heading
Open redirect and possible XSS attack via user-supplied numeric redirect URLs. Full description
Versions affectedLink to this heading
April 4, 2017 - CVE 2017-7234Link to this heading
Open redirect vulnerability in django.views.static.serve(). Full
description
Versions affectedLink to this heading
September 5, 2017 - CVE 2017-12794Link to this heading
Possible XSS in traceback section of technical 500 debug page. Full description
Versions affectedLink to this heading
February 1, 2018 - CVE 2018-6188Link to this heading
Information leakage in AuthenticationForm. Full description
Versions affectedLink to this heading
March 6, 2018 - CVE 2018-7536Link to this heading
Denial-of-service possibility in urlize and urlizetrunc template
filters. Full description
Versions affectedLink to this heading
March 6, 2018 - CVE 2018-7537Link to this heading
Denial-of-service possibility in truncatechars_html and
truncatewords_html template filters. Full description
Versions affectedLink to this heading
August 1, 2018 - CVE 2018-14574Link to this heading
Open redirect possibility in CommonMiddleware. Full description
Versions affectedLink to this heading
October 1, 2018 - CVE 2018-16984Link to this heading
Password hash disclosure to "view only" admin users. Full description
Versions affectedLink to this heading
Django 2.1 (patch)
January 4, 2019 - CVE 2019-3498Link to this heading
Content spoofing possibility in the default 404 page. Full description
Versions affectedLink to this heading
February 11, 2019 - CVE 2019-6975Link to this heading
Memory exhaustion in django.utils.numberformat.format(). Full description
Versions affectedLink to this heading
Django 2.1 (patch)
Django 2.0 (patch and correction)
Django 1.11 (patch)
June 3, 2019 - CVE 2019-11358Link to this heading
Prototype pollution in bundled jQuery. Full description
Versions affectedLink to this heading
June 3, 2019 - CVE 2019-12308Link to this heading
XSS via "Current URL" link generated by AdminURLFieldWidget. Full
description
Versions affectedLink to this heading
July 1, 2019 - CVE 2019-12781Link to this heading
Incorrect HTTP detection with reverse-proxy connecting via HTTPS. Full description
Versions affectedLink to this heading
August 1, 2019 - CVE 2019-14232Link to this heading
Denial-of-service possibility in django.utils.text.Truncator. Full
description
Versions affectedLink to this heading
August 1, 2019 - CVE 2019-14233Link to this heading
Denial-of-service possibility in strip_tags(). Full description
Versions affectedLink to this heading
August 1, 2019 - CVE 2019-14234Link to this heading
SQL injection possibility in key and index lookups for
JSONField/HStoreField. Full description
Versions affectedLink to this heading
August 1, 2019 - CVE 2019-14235Link to this heading
Potential memory exhaustion in django.utils.encoding.uri_to_iri(). Full
description
Versions affectedLink to this heading
December 2, 2019 - CVE 2019-19118Link to this heading
Privilege escalation in the Django admin. Full description
Versions affectedLink to this heading
December 18, 2019 - CVE 2019-19844Link to this heading
Potential account hijack via password reset form. Full description
Versions affectedLink to this heading
February 3, 2020 - CVE 2020-7471Link to this heading
Potential SQL injection via StringAgg(delimiter). Full description
Versions affectedLink to this heading
March 4, 2020 - CVE 2020-9402Link to this heading
Potential SQL injection via tolerance parameter in GIS functions and
aggregates on Oracle. Full description
Versions affectedLink to this heading
June 3, 2020 - CVE 2020-13254Link to this heading
Potential data leakage via malformed memcached keys. Full description
Versions affectedLink to this heading
June 3, 2020 - CVE 2020-13596Link to this heading
Possible XSS via admin ForeignKeyRawIdWidget. Full description
Versions affectedLink to this heading
September 1, 2020 - CVE 2020-24583Link to this heading
Incorrect permissions on intermediate-level directories on Python 3.7+. Full description
Versions affectedLink to this heading
September 1, 2020 - CVE 2020-24584Link to this heading
Permission escalation in intermediate-level directories of the file system cache on Python 3.7+. Full description
Versions affectedLink to this heading
February 1, 2021 - CVE 2021-3281Link to this heading
Potential directory-traversal via archive.extract(). Full description
Versions affectedLink to this heading
February 19, 2021 - CVE 2021-23336Link to this heading
Web cache poisoning via django.utils.http.limited_parse_qsl(). Full
description
Versions affectedLink to this heading
April 6, 2021 - CVE 2021-28658Link to this heading
Potential directory-traversal via uploaded files. Full description