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 shouldnt 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.
A web application accepts a user-controlled input that specifies a link to an external site, and uses that link in a Redirect. This simplifies phishing attacks.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Django | Djangoproject | 1.8.0 (including) | 1.8.0 (including) |
Django | Djangoproject | 1.8.0-a1 (including) | 1.8.0-a1 (including) |
Django | Djangoproject | 1.8.0-b1 (including) | 1.8.0-b1 (including) |
Django | Djangoproject | 1.8.0-b2 (including) | 1.8.0-b2 (including) |
Django | Djangoproject | 1.8.0-c1 (including) | 1.8.0-c1 (including) |
Django | Djangoproject | 1.8.1 (including) | 1.8.1 (including) |
Django | Djangoproject | 1.8.2 (including) | 1.8.2 (including) |
Django | Djangoproject | 1.8.3 (including) | 1.8.3 (including) |
Django | Djangoproject | 1.8.4 (including) | 1.8.4 (including) |
Django | Djangoproject | 1.8.5 (including) | 1.8.5 (including) |
Django | Djangoproject | 1.8.6 (including) | 1.8.6 (including) |
Django | Djangoproject | 1.8.7 (including) | 1.8.7 (including) |
Django | Djangoproject | 1.8.8 (including) | 1.8.8 (including) |
Django | Djangoproject | 1.8.9 (including) | 1.8.9 (including) |
Django | Djangoproject | 1.8.10 (including) | 1.8.10 (including) |
Django | Djangoproject | 1.8.11 (including) | 1.8.11 (including) |
Django | Djangoproject | 1.8.12 (including) | 1.8.12 (including) |
Django | Djangoproject | 1.8.13 (including) | 1.8.13 (including) |
Django | Djangoproject | 1.8.14 (including) | 1.8.14 (including) |
Django | Djangoproject | 1.8.15 (including) | 1.8.15 (including) |
Django | Djangoproject | 1.8.16 (including) | 1.8.16 (including) |
Django | Djangoproject | 1.8.17 (including) | 1.8.17 (including) |
Django | Djangoproject | 1.9 (including) | 1.9 (including) |
Django | Djangoproject | 1.9-a1 (including) | 1.9-a1 (including) |
Django | Djangoproject | 1.9-b1 (including) | 1.9-b1 (including) |
Django | Djangoproject | 1.9-rc1 (including) | 1.9-rc1 (including) |
Django | Djangoproject | 1.9-rc2 (including) | 1.9-rc2 (including) |
Django | Djangoproject | 1.9.1 (including) | 1.9.1 (including) |
Django | Djangoproject | 1.9.2 (including) | 1.9.2 (including) |
Django | Djangoproject | 1.9.3 (including) | 1.9.3 (including) |
Django | Djangoproject | 1.9.4 (including) | 1.9.4 (including) |
Django | Djangoproject | 1.9.5 (including) | 1.9.5 (including) |
Django | Djangoproject | 1.9.6 (including) | 1.9.6 (including) |
Django | Djangoproject | 1.9.7 (including) | 1.9.7 (including) |
Django | Djangoproject | 1.9.8 (including) | 1.9.8 (including) |
Django | Djangoproject | 1.9.9 (including) | 1.9.9 (including) |
Django | Djangoproject | 1.9.10 (including) | 1.9.10 (including) |
Django | Djangoproject | 1.9.11 (including) | 1.9.11 (including) |
Django | Djangoproject | 1.9.12 (including) | 1.9.12 (including) |
Django | Djangoproject | 1.10.0 (including) | 1.10.0 (including) |
Django | Djangoproject | 1.10.0-a1 (including) | 1.10.0-a1 (including) |
Django | Djangoproject | 1.10.0-b1 (including) | 1.10.0-b1 (including) |
Django | Djangoproject | 1.10.0-rc1 (including) | 1.10.0-rc1 (including) |
Django | Djangoproject | 1.10.1 (including) | 1.10.1 (including) |
Django | Djangoproject | 1.10.2 (including) | 1.10.2 (including) |
Django | Djangoproject | 1.10.3 (including) | 1.10.3 (including) |
Django | Djangoproject | 1.10.4 (including) | 1.10.4 (including) |
Django | Djangoproject | 1.10.5 (including) | 1.10.5 (including) |
Django | Djangoproject | 1.10.6 (including) | 1.10.6 (including) |