CVE-2011-4138
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.
Exploit likelihood
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 Medium
AV: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 High
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 - CVSS 3.1
- 7.5 High
CVSS: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 High
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 - CVSS 3.1
- 7.5 High
CVSS: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
| Package | Affected | Fixed |
|---|---|---|
djangoPyPI |
before 1.2.7 | 1.2.7 |
djangoPyPI |
1.3 up to 1.3.1 | 1.3.1 |
python-djangoDebian:12 |
before 1.3.1-1 | 1.3.1-1 |
python-djangoDebian:13 |
before 1.3.1-1 | 1.3.1-1 |
python-djangoDebian:14 |
before 1.3.1-1 | 1.3.1-1 |
python-djangoDebian: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-djangoDebian: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 |
djangoPyPI |
before 1.2.7, plus listed versions 1.0.11.0.21.0.31.0.41.1 Show 11 moreShow less1.1.11.1.21.1.31.1.41.21.2.11.2.21.2.31.2.41.2.51.2.6 |
1.2.7 |
djangoPyPI |
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 less1.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
| Recorded | Changed | Sources |
|---|---|---|
| aliases | EUVD | |
| first indexed | CVE 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
hermes.opensuse.org/messages/14700881
debian.org/security/2011/dsa-2332
bugzilla.redhat.com/show_bug.cgi?id=737366
secunia.com/advisories/46614
openwall.com/lists/oss-security/2011/09/11/1
djangoproject.com/weblog/2011/sep/10/127
Show 9 moreShow less
openwall.com/lists/oss-security/2011/09/13/2
djangoproject.com/weblog/2011/sep/09
nvd.nist.gov/vuln/detail/CVE-2011-4138
github.com/django/django/commit/1a76dbefdfc60e2d5954c0ba614c3d054ba9c3f0
github.com/django/django/commit/7268f8af86186518821d775c530d5558fd726930
github.com/pypa/advisory-database/tree/main/vulns/django/PYSEC-2011-3.yaml
github.com/advisories/GHSA-wxg3-mfph-qg9w
security-tracker.debian.org/tracker/CVE-2011-4138
github.com/django/django