CVE-2015-2316
Django Denial-of-service possibility with strip_tags
The utils.html.strip_tags function in Django 1.6.x before 1.6.11, 1.7.x before 1.7.7, and 1.8.x before 1.8c1, when using certain versions of Python, allows remote attackers to cause a denial of service (infinite loop) by increasing the length of the input string.
Exploit likelihood
What each source reports
NVD Score used
5.0
The utils.html.strip_tags function in Django 1.6.x before 1.6.11, 1.7.x before 1.7.7, and 1.8.x before 1.8c1, when using certain versions of Python, allows remote attackers to cause a denial of service (infinite loop) by increasing the length of the input string.
- Record
CVE-2015-2316- CVSS 2.0
- 5.0 Medium
AV:N/AC:L/Au:N/C:N/I:N/A:P - Weakness
- CWE-399
- Updated
- 2026-11-02
CVE List No score
The utils.html.strip_tags function in Django 1.6.x before 1.6.11, 1.7.x before 1.7.7, and 1.8.x before 1.8c1, when using certain versions of Python, allows remote attackers to cause a denial of service (infinite loop) by increasing the length of the input string.
- Record
CVE-2015-2316- Updated
- 2026-11-02
EUVDEUVD-2015-0007 No score
The utils.html.strip_tags function in Django 1.6.x before 1.6.11, 1.7.x before 1.7.7, and 1.8.x before 1.8c1, when using certain versions of Python, allows remote attackers to cause a denial of service (infinite loop) by increasing the length of the input string.
- Record
EUVD-2015-0007- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-j3j3-jrfh-cm2w
8.7
Django Denial-of-service possibility with strip_tags
The utils.html.strip_tags function in Django 1.6.x before 1.6.11, 1.7.x before 1.7.7, and 1.8.x before 1.8c1, when using certain versions of Python, allows remote attackers to cause a denial of service (infinite loop) by increasing the length of the input string.
- Record
GHSA-j3j3-jrfh-cm2w- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-770
- Updated
- 2026-11-02
OSVGHSA-j3j3-jrfh-cm2w
8.7
Django Denial-of-service possibility with strip_tags
The utils.html.strip_tags function in Django 1.6.x before 1.6.11, 1.7.x before 1.7.7, and 1.8.x before 1.8c1, when using certain versions of Python, allows remote attackers to cause a denial of service (infinite loop) by increasing the length of the input string.
- Record
GHSA-j3j3-jrfh-cm2w- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-770
- Updated
- 2026-11-02
OSV No score
The utils.html.strip_tags function in Django 1.6.x before 1.6.11, 1.7.x before 1.7.7, and 1.8.x before 1.8c1, when using certain versions of Python, allows remote attackers to cause a denial of service (infinite loop) by increasing the length of the input string.
- Record
CVE-2015-2316- Updated
- 2026-11-02
Show 10 moreShow less
OSVDEBIAN-CVE-2015-2316 No score
The utils.html.strip_tags function in Django 1.6.x before 1.6.11, 1.7.x before 1.7.7, and 1.8.x before 1.8c1, when using certain versions of Python, allows remote attackers to cause a denial of service (infinite loop) by increasing the length of the input string.
- Record
DEBIAN-CVE-2015-2316- Updated
- 2026-11-02
OSVMGASA-2015-0127 No score
Updated python-django packages fix security vulnerabilities
Updated python-django and python-django14 packages fix security vulnerabilities:
The ModelAdmin.readonly_fields attribute in the Django admin allows displaying model fields and model attributes. While the former were correctly escaped, the latter were not. Thus untrusted content could be injected into the admin, presenting an exploitation vector for XSS attacks (CVE-2015-2241).
Django relies on user input in some cases to redirect the user to an "on success" URL. The security checks for these redirects accepted URLs with leading control characters and so considered URLs like \x08javascript:... safe. This issue doesn't affect Django currently, however, if a developer relies on is_safe_url() to provide safe redirect targets and puts such a URL into a link, they could suffer from an XSS attack as some browsers such as Google Chrome ignore control characters at the start of a URL in an anchor href (CVE-2015-2317).
Note that the CVE-2015-2241 issue does not affect python-django14 directly, but client code using it may be affected. Please see the March 9th upstream advisory for more information on this.
- Record
MGASA-2015-0127- Updated
- 2026-11-02
OSVPYSEC-2015-18 No score
The utils.html.strip_tags function in Django 1.6.x before 1.6.11, 1.7.x before 1.7.7, and 1.8.x before 1.8c1, when using certain versions of Python, allows remote attackers to cause a denial of service (infinite loop) by increasing the length of the input string.
- Record
PYSEC-2015-18- Updated
- 2026-11-02
OSVSUSE-SU-2015:0563-1 No score
Security update for python-django
python-django was updated to 1.5.10 fixing bugs and security issues:
* Prevented reverse() from generating URLs pointing to other hosts to
prevent phishing attacks. (bnc#893087, CVE-2014-0480)
* Removed O(n) algorithm when uploading duplicate file names to fix
file upload denial of service. (bnc#893088, CVE-2014-0481)
* Modified RemoteUserMiddleware to logout on REMOTE_USE change to
prevent session hijacking. (bnc#893089, CVE-2014-0482)
* Prevented data leakage in contrib.admin via query string
manipulation. (bnc#893090, CVE-2014-0483)
Security Issues:
* CVE-2014-0480
<http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0480>
* CVE-2014-0481
<http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0481>
* CVE-2014-0482
<http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0482>
* CVE-2014-0483
<http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0483>
- Record
SUSE-SU-2015:0563-1- Updated
- 2026-11-02
OSVSUSE-SU-2015:0694-1 No score
Security update for python-Django
python-Django has been updated to fix two vulnerabilities:
* URLs starting with control characters could have allowed XSS
(cross-site-scripting) attacks via user-supplied redirect URLs
(CVE-2015-2317)
* An infinite loop possibility could be triggered in the strip_tags()
function, which allowed denial of service attacks (CVE-2015-2316)
Security Issues:
* CVE-2015-2316
<http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-2316>
* CVE-2015-2317
<http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2015-2317>
- Record
SUSE-SU-2015:0694-1- Updated
- 2026-11-02
OSVSUSE-SU-2015:0695-1 No score
Security update for python-django
python-django was updated to 1.5.10 fixing bugs and security issues:
* Prevented reverse() from generating URLs pointing to other hosts to
prevent phishing attacks. (bnc#893087, CVE-2014-0480)
* Removed O(n) algorithm when uploading duplicate file names to fix
file upload denial of service. (bnc#893088, CVE-2014-0481)
* Modified RemoteUserMiddleware to logout on REMOTE_USE change to
prevent session hijacking. (bnc#893089, CVE-2014-0482)
* Prevented data leakage in contrib.admin via query string
manipulation. (bnc#893090, CVE-2014-0483)
Security Issues:
* CVE-2014-0480
<http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0480>
* CVE-2014-0481
<http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0481>
* CVE-2014-0482
<http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0482>
* CVE-2014-0483
<http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0483>
- Record
SUSE-SU-2015:0695-1- Updated
- 2026-11-02
OSVSUSE-SU-2015:1109-1 No score
Security update for python-Django
python-django was updated to 1.6.11 to fix security issues and non-security bugs.
The following vulnerabilities were fixed:
- Made is_safe_url() reject URLs that start with control characters to mitigate possible XSS attack via user-supplied redirect URLs (bnc#923176, CVE-2015-2317)
- Fixed an infinite loop possibility in strip_tags() (bnc#923172, CVE-2015-2316)
- WSGI header spoofing via underscore/dash conflation (bnc#913053, CVE-2015-0219)
- Mitigated possible XSS attack via user-supplied redirect URLs
- Denial-of-service attack against
django.views.static.serve(bnc#913056, CVE-2015-0221) - Database denial-of-service with
ModelMultipleChoiceField(bnc#913055, CVE-2015-0222)
The update also contains fixes for non-security bugs, functional and stability issues.
- Record
SUSE-SU-2015:1109-1- Updated
- 2026-11-02
OSVSUSE-SU-2015:1112-1 No score
Security update for python-Django
python-django was updated to 1.6.11 to fix security issues and non-security bugs.
The following vulnerabilities were fixed:
- Made is_safe_url() reject URLs that start with control characters to mitigate possible XSS attack via user-supplied redirect URLs (bnc#923176, CVE-2015-2317)
- Fixed an infinite loop possibility in strip_tags() (bnc#923172, CVE-2015-2316)
- WSGI header spoofing via underscore/dash conflation (bnc#913053, CVE-2015-0219)
- Mitigated possible XSS attack via user-supplied redirect URLs
- Denial-of-service attack against
django.views.static.serve(bnc#913056, CVE-2015-0221) - Database denial-of-service with
ModelMultipleChoiceField(bnc#913055, CVE-2015-0222)
The update also contains fixes for non-security bugs, functional and stability issues.
- Record
SUSE-SU-2015:1112-1- Updated
- 2026-11-02
OSVUBUNTU-CVE-2015-2316 No score
The utils.html.strip_tags function in Django 1.6.x before 1.6.11, 1.7.x before 1.7.7, and 1.8.x before 1.8c1, when using certain versions of Python, allows remote attackers to cause a denial of service (infinite loop) by increasing the length of the input string.
- Record
UBUNTU-CVE-2015-2316- Updated
- 2026-11-02
OSVUSN-2539-1 No score
python-django vulnerabilities
Andrey Babak discovered that Django incorrectly handled strip_tags. A remote attacker could possibly use this issue to cause Django to enter an infinite loop, resulting in a denial of service. This issue only affected Ubuntu 14.04 LTS and Ubuntu 14.10. (CVE-2015-2316)
Daniel Chatfield discovered that Django incorrectly handled user-supplied redirect URLs. A remote attacker could possibly use this issue to perform a cross-site scripting attack. (CVE-2015-2317)
- Record
USN-2539-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
djangoPyPI |
1.6 up to 1.6.11 | 1.6.11 |
djangoPyPI |
1.7 up to 1.7.7 | 1.7.7 |
djangoPyPI |
1.8a1 up to 1.8c1 | 1.8c1 |
python-djangoDebian:12 |
before 1.7.7-1 | 1.7.7-1 |
python-djangoDebian:13 |
before 1.7.7-1 | 1.7.7-1 |
python-djangoDebian:14 |
before 1.7.7-1 | 1.7.7-1 |
djangoPyPI |
1.6 up to 1.6.11, plus listed versions 1.6.11.6.101.6.21.6.31.6.4 Show 5 moreShow less1.6.51.6.61.6.71.6.81.6.9 |
1.6.11 |
djangoPyPI |
1.7 up to 1.7.7, plus listed versions 1.7.11.7.21.7.31.7.41.7.51.7.6 |
1.7.7 |
djangoPyPI |
1.8a1 up to 1.8c1, plus listed versions 1.8b11.8b2 |
1.8c1 |
python-djangoMageia:4 |
before 1.5.9-1.2.mga4 | 1.5.9-1.2.mga4 |
Show 4 moreShow less
| Package | Affected | Fixed |
|---|---|---|
python-django14Mageia:4 |
before 1.4.20-1.mga4 | 1.4.20-1.mga4 |
djangoPyPI |
1.6 up to 1.6.11, 1.7 up to 1.7.7, 1.8a0 up to 1.8c1, plus listed versions 1.6.11.6.101.6.21.6.31.6.4 Show 14 moreShow less1.6.51.6.61.6.71.6.81.6.91.7.11.7.21.7.31.7.41.7.51.7.61.8a11.8b11.8b2 |
1.6.111.7.71.8c1 |
python-DjangoSUSE:Enterprise Storage 1.0 |
before 1.6.11-4.1 | 1.6.11-4.1 |
python-djangoUbuntu:14.04:LTS |
before 1.6.1-2ubuntu0.8, plus listed versions 1.5.4-1ubuntu11.6-11.6.1-11.6.1-21.6.1-2ubuntu0.1 Show 5 moreShow less1.6.1-2ubuntu0.21.6.1-2ubuntu0.31.6.1-2ubuntu0.41.6.1-2ubuntu0.51.6.1-2ubuntu0.6 |
1.6.1-2ubuntu0.8 |
History
| Recorded | Changed | Sources |
|---|---|---|
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2015-2316 is a medium vulnerability (CVSS 5.0) in Djangoproject Django, published September 3, 2014. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 4.83%, the 91st percentile. Fixed in django 1.6.11.
References
ubuntu.com/usn/USN-2539-1
securityfocus.com/bid/73322
lists.fedoraproject.org/pipermail/package-announce/2015-April/155421.html
oracle.com/technetwork/topics/security/bulletinapr2015-2511959.html
lists.opensuse.org/opensuse-updates/2015-04/msg00001.html
djangoproject.com/weblog/2015/mar/18/security-releases
Show 42 moreShow less
nvd.nist.gov/vuln/detail/CVE-2015-2316
web.archive.org/web/20200229033201/http://www.securityfocus.com/bid/73322
github.com/django/django/commit/5447709a571cd5d95971f1d5d21d4a7edcf85bbd
github.com/django/django/commit/b6b3cb9899214a23ebb0f4ebf0e0b300b0ee524f
github.com/django/django/commit/e63363f8e075fa8d66326ad6a1cc3391cc95cd97
github.com/pypa/advisory-database/tree/main/vulns/django/PYSEC-2015-18.yaml
github.com/advisories/GHSA-j3j3-jrfh-cm2w
security-tracker.debian.org/tracker/CVE-2015-2316
github.com/django/django
advisories.mageia.org/MGASA-2015-0127.html
bugs.mageia.org/show_bug.cgi?id=15528
djangoproject.com/weblog/2015/mar/09/security-releases
suse.com/support/update/announcement/2015/suse-su-20150563-1
bugzilla.suse.com/893087
bugzilla.suse.com/893088
bugzilla.suse.com/893089
bugzilla.suse.com/893090
bugzilla.suse.com/913053
bugzilla.suse.com/913054
bugzilla.suse.com/913055
bugzilla.suse.com/913056
bugzilla.suse.com/914706
bugzilla.suse.com/923176
suse.com/security/cve/CVE-2014-0480
suse.com/security/cve/CVE-2014-0481
suse.com/security/cve/CVE-2014-0482
suse.com/security/cve/CVE-2014-0483
suse.com/security/cve/CVE-2015-0219
suse.com/security/cve/CVE-2015-0220
suse.com/security/cve/CVE-2015-0221
suse.com/security/cve/CVE-2015-0222
suse.com/security/cve/CVE-2015-2316
suse.com/security/cve/CVE-2015-2317
suse.com/support/update/announcement/2015/suse-su-20150694-1
bugzilla.suse.com/923172
suse.com/support/update/announcement/2015/suse-su-20150695-1
suse.com/support/update/announcement/2015/suse-su-20151109-1
suse.com/support/update/announcement/2015/suse-su-20151112-1
ubuntu.com/security/CVE-2015-2316
ubuntu.com/security/notices/USN-2539-1
cve.org/CVERecord?id=CVE-2015-2316
ubuntu.com/security/CVE-2015-2317