{"id":"CVE-2013-4315","aliases":["DEBIAN-CVE-2013-4315","DSA-2755-1","EUVD-2013-0008","GHSA-vjjp-9r83-22rc","MGASA-2013-0283","MGASA-2013-0284","PYSEC-2013-20","RHSA-2013:1521"],"status":"published","title":"Django Directory Traversal via ssi template tag","description":"Directory traversal vulnerability in Django 1.4.x before 1.4.7, 1.5.x before 1.5.3, and 1.6.x before 1.6 beta 3 allows remote attackers to read arbitrary files via a file path in the ALLOWED_INCLUDE_ROOTS setting followed by a .. (dot dot) in a ssi template tag.","severity":{"version":"2.0","score":5,"vector":"AV:N/AC:L/Au:N/C:P/I:N/A:N","level":"medium","assessor":"primary","from":"nvd"},"epss":{"day":"2026-11-08","score":0.0327,"percentile":0.88486,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-22"],"published":"2013-09-11T00:00:00Z","modified":"2026-09-01T20:03:18Z","fixes":[{"ecosystem":"PyPI","package":"django","fixed_in":["1.4.7","1.5.3"],"sources":["ghsa","osv"]},{"ecosystem":"Debian:12","package":"python-django","fixed_in":["1.5.3-1"],"sources":["osv"]},{"ecosystem":"Debian:13","package":"python-django","fixed_in":["1.5.3-1"],"sources":["osv"]},{"ecosystem":"Debian:14","package":"python-django","fixed_in":["1.5.3-1"],"sources":["osv"]},{"ecosystem":"Debian:6.0","package":"python-django","fixed_in":["1.2.3-3+squeeze7"],"sources":["osv"]},{"ecosystem":"Debian:7","package":"python-django","fixed_in":["1.4.5-1+deb7u3"],"sources":["osv"]},{"ecosystem":"Mageia:2","package":"python-django","fixed_in":["1.3.7-1.2.mga2"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"django","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.4"},{"fixed":"1.4.7"}]}]},{"source":"ghsa","ecosystem":"PyPI","package":"django","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.5"},{"fixed":"1.5.3"}]}]},{"source":"osv","ecosystem":"Debian:12","package":"python-django","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.5.3-1"}]}]},{"source":"osv","ecosystem":"Debian:13","package":"python-django","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.5.3-1"}]}]},{"source":"osv","ecosystem":"Debian:14","package":"python-django","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.5.3-1"}]}]},{"source":"osv","ecosystem":"Debian:6.0","package":"python-django","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.2.3-3+squeeze7"}]}],"versions":["1.2.3-3","1.2.3-3+squeeze1","1.2.3-3+squeeze2","1.2.3-3+squeeze3","1.2.3-3+squeeze5","1.2.3-3+squeeze6"]},{"source":"osv","ecosystem":"Debian:7","package":"python-django","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.4.5-1+deb7u3"}]}],"versions":["1.4.5-1","1.4.5-1+deb7u1","1.4.5-1+deb7u2"]},{"source":"osv","ecosystem":"PyPI","package":"django","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.4"},{"fixed":"1.4.7"}]}],"versions":["1.4","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5","1.4.6"]},{"source":"osv","ecosystem":"PyPI","package":"django","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.5"},{"fixed":"1.5.3"}]}],"versions":["1.5","1.5.1","1.5.2"]},{"source":"osv","ecosystem":"Mageia:2","package":"python-django","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.3.7-1.2.mga2"}]}]},{"source":"osv","ecosystem":"Mageia:3","package":"python-django","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.4.8-1.mga3"}]}],"bundled":2},{"source":"osv","ecosystem":"PyPI","package":"django","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.4"},{"fixed":"1.4.7"},{"introduced":"1.5"},{"fixed":"1.5.3"}]}],"versions":["1.4","1.4.1","1.4.2","1.4.3","1.4.4","1.4.5","1.4.6","1.5","1.5.1","1.5.2"]},{"source":"osv","ecosystem":"Red Hat:openstack:3::el6","package":"Django14","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.4.8-1.el6ost"}]}],"bundled":2},{"source":"osv","ecosystem":"Red Hat:openstack:3::el6","package":"Django14-doc","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"0:1.4.8-1.el6ost"}]}],"bundled":2}],"products":[{"vendor":"djangoproject","product":"django"}],"references":[{"url":"http://lists.opensuse.org/opensuse-updates/2013-10/msg00015.html","tags":["vendor-advisory","x_refsource_SUSE","x_transferred","web"]},{"url":"http://secunia.com/advisories/54772","tags":["third-party-advisory","x_refsource_SECUNIA","x_transferred","Vendor Advisory","advisory"]},{"url":"http://rhn.redhat.com/errata/RHSA-2013-1521.html","tags":["vendor-advisory","x_refsource_REDHAT","x_transferred","advisory","web"]},{"url":"https://www.djangoproject.com/weblog/2013/sep/10/security-releases-issued/","tags":["x_refsource_CONFIRM","x_transferred","Patch","Vendor Advisory","advisory","fix","web","article"]},{"url":"http://secunia.com/advisories/54828","tags":["third-party-advisory","x_refsource_SECUNIA","x_transferred","Vendor Advisory","advisory"]},{"url":"http://www.debian.org/security/2013/dsa-2755","tags":["vendor-advisory","x_refsource_DEBIAN","x_transferred","advisory","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2013-4315","tags":["advisory"]},{"url":"https://github.com/django/django/commit/87d2750b39f6f2d54b7047225521a44dcd37e896","tags":["web"]},{"url":"https://github.com/django/django/commit/988b61c550d798f9a66d17ee0511fb7a9a7f33ca","tags":["web"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/django/PYSEC-2013-20.yaml","tags":["web"]},{"url":"https://www.djangoproject.com/weblog/2013/sep/10/security-releases-issued","tags":["web"]},{"url":"https://github.com/advisories/GHSA-vjjp-9r83-22rc","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2013-4315","tags":["advisory"]},{"url":"https://github.com/django/django","tags":["package"]},{"url":"https://advisories.mageia.org/MGASA-2013-0283.html","tags":["advisory"]},{"url":"https://bugs.mageia.org/show_bug.cgi?id=11217","tags":["report"]},{"url":"https://advisories.mageia.org/MGASA-2013-0284.html","tags":["advisory"]},{"url":"https://www.djangoproject.com/weblog/2013/sep/15/security/","tags":["web"]},{"url":"https://bugs.mageia.org/show_bug.cgi?id=11217.mga3","tags":["report"]},{"url":"https://access.redhat.com/errata/RHSA-2013:1521","tags":["advisory"]},{"url":"https://access.redhat.com/security/updates/classification/#moderate","tags":["article"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1004969","tags":["report"]},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=1016394","tags":["report"]},{"url":"https://security.access.redhat.com/data/csaf/v2/advisories/2013/rhsa-2013_1521.json","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2013-4315","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2013-4315","tags":["advisory"]},{"url":"https://access.redhat.com/security/cve/CVE-2013-6044","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2013-6044","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2013-6044","tags":["advisory"]}],"sources":{"cve":[{"id":"CVE-2013-4315","description":"Directory traversal vulnerability in Django 1.4.x before 1.4.7, 1.5.x before 1.5.3, and 1.6.x before 1.6 beta 3 allows remote attackers to read arbitrary files via a file path in the ALLOWED_INCLUDE_ROOTS setting followed by a .. (dot dot) in a ssi template tag.","status":"published","published":"2013-09-16T19:00:00Z","modified":"2024-08-06T16:38:01.925Z","updated_at":"2026-11-02T14:34:58.193873Z"}],"euvd":[{"id":"EUVD-2013-0008","description":"Directory traversal vulnerability in Django 1.4.x before 1.4.7, 1.5.x before 1.5.3, and 1.6.x before 1.6 beta 3 allows remote attackers to read arbitrary files via a file path in the ALLOWED_INCLUDE_ROOTS setting followed by a .. (dot dot) in a ssi template tag.","status":"published","published":"2013-09-16T19:00:00Z","modified":"2024-08-06T16:38:01Z","updated_at":"2026-11-03T01:56:33.227006Z"}],"ghsa":[{"id":"GHSA-vjjp-9r83-22rc","title":"Django Directory Traversal via ssi template tag","description":"Directory traversal vulnerability in Django 1.4.x before 1.4.7, 1.5.x before 1.5.3, and 1.6.x before 1.6 beta 3 allows remote attackers to read arbitrary files via a file path in the ALLOWED_INCLUDE_ROOTS setting followed by a `..` (dot dot) in a ssi template tag.","status":"published","published":"2022-05-17T04:56:46Z","modified":"2024-09-18T18:57:03Z","cvss":[{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","level":"high"},{"version":"3.1","score":8.6,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N","level":"high"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:38:03.800952Z"}],"nvd":[{"id":"CVE-2013-4315","description":"Directory traversal vulnerability in Django 1.4.x before 1.4.7, 1.5.x before 1.5.3, and 1.6.x before 1.6 beta 3 allows remote attackers to read arbitrary files via a file path in the ALLOWED_INCLUDE_ROOTS setting followed by a .. (dot dot) in a ssi template tag.","status":"published","published":"2013-09-16T19:14:39.303Z","modified":"2026-06-16T23:57:00.79Z","cvss":[{"version":"2.0","score":5,"vector":"AV:N/AC:L/Au:N/C:P/I:N/A:N","level":"medium","assessor":"primary"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T14:02:35.248411Z"}],"osv":[{"id":"GHSA-vjjp-9r83-22rc","title":"Django Directory Traversal via ssi template tag","description":"Directory traversal vulnerability in Django 1.4.x before 1.4.7, 1.5.x before 1.5.3, and 1.6.x before 1.6 beta 3 allows remote attackers to read arbitrary files via a file path in the ALLOWED_INCLUDE_ROOTS setting followed by a `..` (dot dot) in a ssi template tag.","status":"published","published":"2022-05-17T04:56:46Z","modified":"2024-09-18T19:09:03.440288Z","cvss":[{"version":"3.1","score":8.6,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N","level":"high"},{"version":"4.0","score":8.7,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-22"],"updated_at":"2026-11-02T15:46:57.348035Z"},{"id":"CVE-2013-4315","description":"Directory traversal vulnerability in Django 1.4.x before 1.4.7, 1.5.x before 1.5.3, and 1.6.x before 1.6 beta 3 allows remote attackers to read arbitrary files via a file path in the ALLOWED_INCLUDE_ROOTS setting followed by a .. (dot dot) in a ssi template tag.","status":"published","published":"2013-09-16T19:14:39Z","modified":"2026-04-16T06:26:16.011347783Z","updated_at":"2026-11-02T15:43:59.09154Z"},{"id":"DEBIAN-CVE-2013-4315","description":"Directory traversal vulnerability in Django 1.4.x before 1.4.7, 1.5.x before 1.5.3, and 1.6.x before 1.6 beta 3 allows remote attackers to read arbitrary files via a file path in the ALLOWED_INCLUDE_ROOTS setting followed by a .. (dot dot) in a ssi template tag.","status":"published","published":"2013-09-16T19:14:39.303Z","modified":"2026-09-01T20:03:18.085819939Z","updated_at":"2026-11-02T15:45:25.514579Z"},{"id":"DSA-2755-1","title":"python-django - directory traversal","status":"published","published":"2013-09-11T00:00:00Z","modified":"2026-03-09T01:20:01.183731Z","updated_at":"2026-11-02T15:46:15.489951Z"},{"id":"MGASA-2013-0283","title":"Updated python-django package fixes security vulnerability","description":"Rainer Koirikivi discovered a directory traversal vulnerability with\n'ssi' template tags in python-django, a high-level Python web development\nframework. It was shown that the handling of the 'ALLOWED_INCLUDE_ROOTS'\nsetting, used to represent allowed prefixes for the {% ssi %} template\ntag, is vulnerable to a directory traversal attack, by specifying a file\npath which begins as the absolute path of a directory in\n'ALLOWED_INCLUDE_ROOTS', and then uses relative paths to break free. To\nexploit this vulnerability an attacker must be in a position to alter\ntemplates on the site, or the site to be attacked must have one or more\ntemplates making use of the 'ssi' tag, and must allow some form of\nunsanitized user input to be used as an argument to the 'ssi' tag\n(CVE-2013-4315).\n","status":"published","published":"2013-09-19T09:41:40Z","modified":"2026-04-16T06:25:01.229245526Z","updated_at":"2026-11-02T15:49:39.121227Z"},{"id":"MGASA-2013-0284","title":"Updated python-django package fixes multiple vulnerabilities","description":"Updated python-django package fixes security vulnerabilities:\n\nRainer Koirikivi discovered a directory traversal vulnerability with 'ssi'\ntemplate tags in python-django, a high-level Python web development framework.\nIt was shown that the handling of the 'ALLOWED_INCLUDE_ROOTS' setting, used to\nrepresent allowed prefixes for the {% ssi %} template tag, is vulnerable to a\ndirectory traversal attack, by specifying a file path which begins as the\nabsolute path of a directory in 'ALLOWED_INCLUDE_ROOTS', and then uses relative\npaths to break free.  To exploit this vulnerability an attacker must be in a\nposition to alter templates on the site, or the site to be attacked must have\none or more templates making use of the 'ssi' tag, and must allow some form of\nunsanitized user input to be used as an argument to the 'ssi' tag\n(CVE-2013-4315).\n\nDjango before 1.4.8 allows for denial-of-service attacks through repeated\nsubmission of large passwords, tying up server resources in the expensive\ncomputation of the corresponding hashes (CVE-2013-1443).\n","status":"published","published":"2013-09-19T09:45:04Z","modified":"2026-04-16T06:26:17.623743456Z","updated_at":"2026-11-02T15:49:39.121227Z"},{"id":"PYSEC-2013-20","description":"Directory traversal vulnerability in Django 1.4.x before 1.4.7, 1.5.x before 1.5.3, and 1.6.x before 1.6 beta 3 allows remote attackers to read arbitrary files via a file path in the ALLOWED_INCLUDE_ROOTS setting followed by a .. (dot dot) in a ssi template tag.","status":"published","published":"2013-09-16T19:14:00Z","modified":"2026-06-10T17:00:53.133838023Z","updated_at":"2026-11-02T15:52:51.645172Z"},{"id":"RHSA-2013:1521","title":"Red Hat Security Advisory: python-django security update","status":"published","published":"2024-09-15T21:11:27Z","modified":"2026-01-14T11:00:07.452506Z","updated_at":"2026-11-02T15:53:01.993625Z"}]}}
