{"id":"CVE-2015-2317","published":"2015-03-25T14:00:00Z","modified":"2024-08-06T05:10:16Z","title":"The utils.http.is_safe_url function in Django before 1.4.20, 1.5.x, 1.6.x before 1.6.11, 1.7.x before 1.7.7, and 1.8.x…","vendor":null,"product":null,"tier":"tail","description":{"text":"The utils.http.is_safe_url function in Django before 1.4.20, 1.5.x, 1.6.x before 1.6.11, 1.7.x before 1.7.7, and 1.8.x before 1.8c1 does not properly validate URLs, which allows remote attackers to conduct cross-site scripting (XSS) attacks via a control character in a URL, as demonstrated by a \\x08javascript: URL.","provenance":"source","from":"CVE.org"},"cvss":null,"epss":{"score":0.04968,"percentile":0.92163,"provenance":"source"},"cwes":[],"references":[{"url":"http://ubuntu.com/usn/usn-2539-1","tags":["vendor-advisory","x_refsource_UBUNTU"]},{"url":"http://www.securityfocus.com/bid/73319","tags":["vdb-entry","x_refsource_BID"]},{"url":"http://www.debian.org/security/2015/dsa-3204","tags":["vendor-advisory","x_refsource_DEBIAN"]},{"url":"http://lists.fedoraproject.org/pipermail/package-announce/2015-April/155421.html","tags":["vendor-advisory","x_refsource_FEDORA"]},{"url":"http://lists.opensuse.org/opensuse-updates/2015-09/msg00035.html","tags":["vendor-advisory","x_refsource_SUSE"]},{"url":"http://www.oracle.com/technetwork/topics/security/bulletinapr2015-2511959.html","tags":["x_refsource_CONFIRM"]},{"url":"http://www.mandriva.com/security/advisories?name=MDVSA-2015:195","tags":["vendor-advisory","x_refsource_MANDRIVA"]},{"url":"http://lists.opensuse.org/opensuse-updates/2015-04/msg00001.html","tags":["vendor-advisory","x_refsource_SUSE"]},{"url":"http://lists.fedoraproject.org/pipermail/package-announce/2015-June/160263.html","tags":["vendor-advisory","x_refsource_FEDORA"]},{"url":"https://www.djangoproject.com/weblog/2015/mar/18/security-releases/","tags":["x_refsource_CONFIRM"]}],"priority":{"score":18.4,"factors":[{"name":"EPSS percentile","points":18.43}]},"affected":[{"ecosystem":"PyPI","package":"Django","vulnerableRanges":["<1.4.20",">=1.5, <1.6.11",">=1.7, <1.7.7",">=1.8a1, <1.8c1",">=1.8a0, <1.8c1"],"patched":["1.4.20","1.6.11","1.7.7","1.8c1"],"from":["GHSA-7fq8-4pv5-5w5c","PYSEC-2015-9"],"provenance":"source"}],"euvd":{"id":"EUVD-2015-0018","exploited":false,"provenance":"source"},"lineage":{"familyId":"fam-django-cve-2014-3730","parents":[{"from":"CVE-2014-3730","to":"CVE-2015-2317","relation":"related","confidence":"medium","kind":"lineage","evidence":[{"kind":"same-code","provenance":"machine","files":["django/utils/http.py"],"commits":["https://github.com/django/django/commit/601107524523bca02376a0ddc1a06c6fdb8f22f3","https://github.com/django/django/commit/7feb54bbae3f637ab3c4dd4831d4385964f574df","https://github.com/django/django/commit/2342693b31f740a422abf7267c53b4e7bc487c1b","https://github.com/django/django/commit/2a4113dbd532ce952308992633d802dc169a75f1"],"basis":"shared function","functions":["is_safe_url"]},{"kind":"similar","provenance":"machine","score":0.49,"basis":"same package + description similarity"}]}],"children":[{"from":"CVE-2015-2317","to":"CVE-2016-2512","relation":"related","confidence":"medium","kind":"lineage","evidence":[{"kind":"same-code","provenance":"machine","files":["django/utils/http.py"],"commits":["https://github.com/django/django/commit/2342693b31f740a422abf7267c53b4e7bc487c1b","https://github.com/django/django/commit/2a4113dbd532ce952308992633d802dc169a75f1","https://github.com/django/django/commit/c5544d289233f501917e25970c03ed444abbd4f0","https://github.com/django/django/commit/382ab137312961ad62feb8109d70a5a581fe8350"],"basis":"shared function","functions":["is_safe_url"]},{"kind":"similar","provenance":"machine","score":0.47,"basis":"same package + description similarity"}]},{"from":"CVE-2015-2317","to":"CVE-2017-7233","relation":"related","confidence":"medium","kind":"lineage","evidence":[{"kind":"same-code","provenance":"machine","files":["django/utils/http.py"],"commits":["https://github.com/django/django/commit/2342693b31f740a422abf7267c53b4e7bc487c1b","https://github.com/django/django/commit/2a4113dbd532ce952308992633d802dc169a75f1","https://github.com/django/django/commit/254326cb3682389f55f886804d2c43f7b9f23e4f","https://github.com/django/django/commit/8339277518c7d8ec280070a780915304654e3b66"],"basis":"shared function","functions":["is_safe_url"]}]}],"packageHistory":[{"cve":"CVE-2015-5964","published":"2015-08-24","fixed":"1.7.10","kev":false},{"cve":"CVE-2015-2241","published":"2015-03-12","fixed":"1.8b2","kev":false,"link":{"from":"CVE-2015-2241","to":"CVE-2015-2317","relation":"successor","confidence":"low","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"PyPI:Django","fromFixed":"1.7.6","toFixed":"1.7.7","daysApart":13}]}},{"cve":"CVE-2015-2316","published":"2015-03-25","fixed":"1.8c1","kev":false},{"cve":"CVE-2015-2317","published":"2015-03-25","fixed":"1.8c1","kev":false},{"cve":"CVE-2015-3982","published":"2015-06-02","fixed":"1.8.2","kev":false},{"cve":"CVE-2015-5143","published":"2015-07-14","fixed":"1.8.3","kev":false,"link":{"from":"CVE-2015-2317","to":"CVE-2015-5143","relation":"successor","confidence":"low","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"PyPI:Django","fromFixed":"1.4.20","toFixed":"1.4.21","daysApart":111}]}},{"cve":"CVE-2015-5144","published":"2015-07-14","fixed":"1.8.3","kev":false,"link":{"from":"CVE-2015-2317","to":"CVE-2015-5144","relation":"successor","confidence":"low","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"PyPI:Django","fromFixed":"1.4.20","toFixed":"1.4.21","daysApart":111}]}}],"package":"PyPI:Django"}}