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.
The web application accepts a user-controlled input that specifies a link to an external site, and uses that link in a redirect.
Link | Tags |
---|---|
http://www.securitytracker.com/id/1038177 | vdb entry |
https://access.redhat.com/errata/RHSA-2017:1596 | vendor advisory |
http://www.securityfocus.com/bid/97406 | third party advisory vdb entry |
https://access.redhat.com/errata/RHSA-2017:3093 | vendor advisory |
http://www.debian.org/security/2017/dsa-3835 | vendor advisory |
https://access.redhat.com/errata/RHSA-2017:1445 | vendor advisory |
https://access.redhat.com/errata/RHSA-2017:1451 | vendor advisory |
https://access.redhat.com/errata/RHSA-2018:2927 | vendor advisory |
https://access.redhat.com/errata/RHSA-2017:1470 | vendor advisory |
https://www.djangoproject.com/weblog/2017/apr/04/security-releases/ | vendor advisory |
https://access.redhat.com/errata/RHSA-2017:1462 | vendor advisory |