Every CVE Search/ Get API key

CVE-2011-4138

Django Might Allow CSRF Requests via URL Verification

5.0 MediumFix available

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.

Exploit likelihood

2.36%Up 1.0 points since Feb 4, 2022
90%50%10%1%

What each source reports

NVD Score used 5.0

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.

Record
CVE-2011-4138
CVSS 2.0
5.0 MediumAV:N/AC:L/Au:N/C:P/I:N/A:N
Weakness
CWE-20
Updated
2026-11-02
CVE List No score

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.

Record
CVE-2011-4138
Updated
2026-11-02
EUVDEUVD-2011-0008 No score

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.

Record
EUVD-2011-0008
Updated
2026-11-03
GitHub AdvisoriesGHSA-wxg3-mfph-qg9w 8.7

Django Might Allow CSRF Requests via URL Verification

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.

Record
GHSA-wxg3-mfph-qg9w
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-20
Updated
2026-11-02
OSVGHSA-wxg3-mfph-qg9w 8.7

Django Might Allow CSRF Requests via URL Verification

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.

Record
GHSA-wxg3-mfph-qg9w
CVSS 4.0
8.7 HighCVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N
CVSS 3.1
7.5 HighCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Weakness
CWE-20
Updated
2026-11-02
OSV No score

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.

Record
CVE-2011-4138
Updated
2026-11-02
OSVDEBIAN-CVE-2011-4138 No score

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.

Record
DEBIAN-CVE-2011-4138
Updated
2026-11-02
OSVPYSEC-2011-3 No score

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.

Record
PYSEC-2011-3
Updated
2026-11-02

Affected products

Affected packages

Affected packages
PackageAffectedFixed
django
PyPI
before 1.2.7
1.2.7
django
PyPI
1.3 up to 1.3.1
1.3.1
python-django
Debian:12
before 1.3.1-1
1.3.1-1
python-django
Debian:13
before 1.3.1-1
1.3.1-1
python-django
Debian:14
before 1.3.1-1
1.3.1-1
python-django
Debian:6.0
before 1.2.3-3+squeeze2, plus listed versions
1.2.3-31.2.3-3+squeeze1
1.2.3-3+squeeze2
python-django
Debian:5.0
before 1.0.2-1+lenny3, plus listed versions
1.0.2-11.0.2-1+lenny11.0.2-1+lenny2
1.0.2-1+lenny3
django
PyPI
before 1.2.7, plus listed versions
1.0.11.0.21.0.31.0.41.1
Show 11 moreShow less
1.1.11.1.21.1.31.1.41.21.2.11.2.21.2.31.2.41.2.51.2.6
1.2.7
django
PyPI
before 1.2.7, 1.3 up to 1.3.1, plus listed versions
1.0.11.0.21.0.31.0.41.1
Show 11 moreShow less
1.1.11.1.21.1.31.1.41.21.2.11.2.21.2.31.2.41.2.51.2.6
1.2.71.3.1

History

History
RecordedChangedSources
aliasesEUVD
first indexedCVE List, GitHub Advisories, NVD, OSV

Dates are when Every CVE recorded each change. Upstream dates may differ.

In short

CVE-2011-4138 is a medium vulnerability (CVSS 5.0) in Djangoproject Django, published October 19, 2011. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 2.36%, the 83rd percentile. Fixed in django 1.2.7.

References

Show 9 moreShow less
MoveEnter Open