Vulnerability advisory
GHSA-37hp-765x-j95x
Django open redirect and possible XSS attack via user-supplied numeric redirect URLs
Also known as CVE-2017-7233PYSEC-2017-9
Severity
- CVSS 3.x
CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - CVSS 4.0
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
Affected versions
| Affected | Fixed in |
|---|---|
1.10a1 to before 1.10.7 | 1.10.7Advisories → |
1.9a1 to before 1.9.13 | 1.9.13Advisories → |
1.8a1 to before 1.8.18 | 1.8.18Advisories → |
Description
Django 1.10 before 1.10.7, 1.9 before 1.9.13, and 1.8 before 1.8.18 relies on user input in some cases to redirect the user to an "on success" URL. The security check for these redirects (namely django.utils.http.is_safe_url()) considered some numeric URLs "safe" when they shouldn't be, aka an open redirect vulnerability. Also, 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.
References
- Advisorynvd.nist.gov/vuln/detail/CVE-2017-7233 ↗
- Webgithub.com/django/django/commit/254326cb3682389f55f886804d2c43f7b9f23e4f ↗
- Webgithub.com/django/django/commit/8339277518c7d8ec280070a780915304654e3b66 ↗
- Webgithub.com/django/django/commit/f824655bc2c50b19d2f202d7640785caabc82787 ↗
- Webaccess.redhat.com/errata/RHSA-2017:1445 ↗
- Webaccess.redhat.com/errata/RHSA-2017:1451 ↗
- Webaccess.redhat.com/errata/RHSA-2017:1462 ↗
- Webaccess.redhat.com/errata/RHSA-2017:1470 ↗
- Webaccess.redhat.com/errata/RHSA-2017:1596 ↗
- Webaccess.redhat.com/errata/RHSA-2017:3093 ↗
- Webaccess.redhat.com/errata/RHSA-2018:2927 ↗
- Advisorygithub.com/advisories/GHSA-37hp-765x-j95x ↗
- Packagegithub.com/django/django ↗
- Webgithub.com/pypa/advisory-database/tree/main/vulns/django/PYSEC-2017-9.yaml ↗
- Webwww.djangoproject.com/weblog/2017/apr/04/security-releases ↗
- Webwww.debian.org/security/2017/dsa-3835 ↗