The verify_exists functionality in the URLField implementation in Django before 1.2.7 and 1.3.x before 1.3.1 originally tests a URL's validity through a HEAD request, but then uses a GET request for the new target URL in the case of a redirect, which might allow remote attackers to trigger arbitrary GET requests with an unintended source IP address via a crafted Location header.
https://www.djangoproject.com/weblog/2011/sep/10/127/
https://www.djangoproject.com/weblog/2011/sep/09/
https://hermes.opensuse.org/messages/14700881
https://bugzilla.redhat.com/show_bug.cgi?id=737366
http://www.debian.org/security/2011/dsa-2332
http://secunia.com/advisories/46614
Published: 2011-10-19
Updated: 2025-04-11
Base Score: 5
Vector: CVSS2#AV:N/AC:L/Au:N/C:P/I:N/A:N
Severity: Medium
Base Score: 7.5
Vector: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Severity: High
Base Score: 8.7
Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
Severity: High
EPSS: 0.00755