CVE-2009-0037
The redirect implementation in curl and libcurl 5.11 through 7.19.3, when CURLOPT_FOLLOWLOCATION...
The redirect implementation in curl and libcurl 5.11 through 7.19.3, when CURLOPT_FOLLOWLOCATION is enabled, accepts arbitrary Location values, which might allow remote HTTP servers to (1) trigger arbitrary requests to intranet servers, (2) read or overwrite arbitrary files via a redirect to a file: URL, or (3) execute arbitrary commands via a redirect to an scp: URL.
Exploit likelihood
What each source reports
NVD Score used
6.8
The redirect implementation in curl and libcurl 5.11 through 7.19.3, when CURLOPT_FOLLOWLOCATION is enabled, accepts arbitrary Location values, which might allow remote HTTP servers to (1) trigger arbitrary requests to intranet servers, (2) read or overwrite arbitrary files via a redirect to a file: URL, or (3) execute arbitrary commands via a redirect to an scp: URL.
- Record
CVE-2009-0037- CVSS 2.0
- 6.8 Medium
AV:N/AC:M/Au:N/C:P/I:P/A:P - Weakness
- CWE-352
- Updated
- 2026-11-02
CVE List No score
The redirect implementation in curl and libcurl 5.11 through 7.19.3, when CURLOPT_FOLLOWLOCATION is enabled, accepts arbitrary Location values, which might allow remote HTTP servers to (1) trigger arbitrary requests to intranet servers, (2) read or overwrite arbitrary files via a redirect to a file: URL, or (3) execute arbitrary commands via a redirect to an scp: URL.
- Record
CVE-2009-0037- Updated
- 2026-11-02
EUVDEUVD-2009-0048 No score
The redirect implementation in curl and libcurl 5.11 through 7.19.3, when CURLOPT_FOLLOWLOCATION is enabled, accepts arbitrary Location values, which might allow remote HTTP servers to (1) trigger arbitrary requests to intranet servers, (2) read or overwrite arbitrary files via a redirect to a file: URL, or (3) execute arbitrary commands via a redirect to an scp: URL.
- Record
EUVD-2009-0048- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-jr23-52fg-m7rm No score
The redirect implementation in curl and libcurl 5.11 through 7.19.3, when CURLOPT_FOLLOWLOCATION...
The redirect implementation in curl and libcurl 5.11 through 7.19.3, when CURLOPT_FOLLOWLOCATION is enabled, accepts arbitrary Location values, which might allow remote HTTP servers to (1) trigger arbitrary requests to intranet servers, (2) read or overwrite arbitrary files via a redirect to a file: URL, or (3) execute arbitrary commands via a redirect to an scp: URL.
- Record
GHSA-jr23-52fg-m7rm- Weakness
- CWE-352
- Updated
- 2026-11-02
OSVCURL-CVE-2009-0037 No score
Arbitrary File Access
When told to follow a "redirect" automatically, libcurl does not question the new target URL but follows it to any new URL that it understands. As libcurl supports FILE:// URLs, a rogue server can thus "trick" a libcurl-using application to read a local file instead of the remote one.
This is a problem, for example, when the application is running on a server and is written to upload or to otherwise provide the transferred data to a user, to another server or to another application etc, as it can be used to expose local files it was not meant to.
The problem can also be exploited for uploading, if the rogue server redirects the client to a local file and thus it would (over)write a local file instead of sending it to the server.
libcurl compiled to support SCP can get tricked to get a file using embedded
semicolons, which can lead to execution of commands on the given
server. Location: scp://name:passwd@host/a;date >/tmp/test;.
Files on servers other than the one running libcurl are also accessible when credentials for those servers are stored in the .netrc file of the user running libcurl. This is most common for FTP servers, but can occur with any protocol supported by libcurl. Files on remote SSH servers are also accessible when the user has an unencrypted SSH key.
- Record
CURL-CVE-2009-0037- Updated
- 2026-11-02
OSV No score
The redirect implementation in curl and libcurl 5.11 through 7.19.3, when CURLOPT_FOLLOWLOCATION is enabled, accepts arbitrary Location values, which might allow remote HTTP servers to (1) trigger arbitrary requests to intranet servers, (2) read or overwrite arbitrary files via a redirect to a file: URL, or (3) execute arbitrary commands via a redirect to an scp: URL.
- Record
CVE-2009-0037- Updated
- 2026-11-02
OSVDEBIAN-CVE-2009-0037 No score
The redirect implementation in curl and libcurl 5.11 through 7.19.3, when CURLOPT_FOLLOWLOCATION is enabled, accepts arbitrary Location values, which might allow remote HTTP servers to (1) trigger arbitrary requests to intranet servers, (2) read or overwrite arbitrary files via a redirect to a file: URL, or (3) execute arbitrary commands via a redirect to an scp: URL.
- Record
DEBIAN-CVE-2009-0037- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:10303-1 No score
curl-7.51.0-1.1 on GA media
These are all security issues fixed in the curl-7.51.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:10303-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
curlDebian:12 |
before 7.18.2-8.1 | 7.18.2-8.1 |
curlDebian:13 |
before 7.18.2-8.1 | 7.18.2-8.1 |
curlDebian:14 |
before 7.18.2-8.1 | 7.18.2-8.1 |
curlDebian:4.0 |
before 7.15.5-1etch2, plus listed versions 7.15.5-17.15.5-1etch1 |
7.15.5-1etch2 |
curlDebian:5.0 |
before 7.18.2-8lenny2, plus listed versions 7.18.2-8 |
7.18.2-8lenny2 |
curlRed Hat:enterprise_linux:2.1::as |
before 0:7.8-3.rhel2 | 0:7.8-3.rhel2 |
curl-develRed Hat:enterprise_linux:2.1::as |
before 0:7.8-3.rhel2 | 0:7.8-3.rhel2 |
curlRed Hat:enterprise_linux:2.1::aw |
before 0:7.8-3.rhel2 | 0:7.8-3.rhel2 |
curl-develRed Hat:enterprise_linux:2.1::aw |
before 0:7.8-3.rhel2 | 0:7.8-3.rhel2 |
curlRed Hat:enterprise_linux:2.1::es |
before 0:7.8-3.rhel2 | 0:7.8-3.rhel2 |
Show 36 moreShow less
| Package | Affected | Fixed |
|---|---|---|
curl-develRed Hat:enterprise_linux:2.1::es |
before 0:7.8-3.rhel2 | 0:7.8-3.rhel2 |
curlRed Hat:enterprise_linux:2.1::ws |
before 0:7.8-3.rhel2 | 0:7.8-3.rhel2 |
curl-develRed Hat:enterprise_linux:2.1::ws |
before 0:7.8-3.rhel2 | 0:7.8-3.rhel2 |
curlRed Hat:enterprise_linux:3::as |
before 0:7.10.6-9.rhel3 | 0:7.10.6-9.rhel3 |
curl-debuginfoRed Hat:enterprise_linux:3::as |
before 0:7.10.6-9.rhel3 | 0:7.10.6-9.rhel3 |
curl-develRed Hat:enterprise_linux:3::as |
before 0:7.10.6-9.rhel3 | 0:7.10.6-9.rhel3 |
curlRed Hat:enterprise_linux:3::desktop |
before 0:7.10.6-9.rhel3 | 0:7.10.6-9.rhel3 |
curl-debuginfoRed Hat:enterprise_linux:3::desktop |
before 0:7.10.6-9.rhel3 | 0:7.10.6-9.rhel3 |
curl-develRed Hat:enterprise_linux:3::desktop |
before 0:7.10.6-9.rhel3 | 0:7.10.6-9.rhel3 |
curlRed Hat:enterprise_linux:3::es |
before 0:7.10.6-9.rhel3 | 0:7.10.6-9.rhel3 |
curl-debuginfoRed Hat:enterprise_linux:3::es |
before 0:7.10.6-9.rhel3 | 0:7.10.6-9.rhel3 |
curl-develRed Hat:enterprise_linux:3::es |
before 0:7.10.6-9.rhel3 | 0:7.10.6-9.rhel3 |
curlRed Hat:enterprise_linux:3::ws |
before 0:7.10.6-9.rhel3 | 0:7.10.6-9.rhel3 |
curl-debuginfoRed Hat:enterprise_linux:3::ws |
before 0:7.10.6-9.rhel3 | 0:7.10.6-9.rhel3 |
curl-develRed Hat:enterprise_linux:3::ws |
before 0:7.10.6-9.rhel3 | 0:7.10.6-9.rhel3 |
curlRed Hat:enterprise_linux:4::as |
before 0:7.12.1-11.1.el4_7.1 | 0:7.12.1-11.1.el4_7.1 |
curl-debuginfoRed Hat:enterprise_linux:4::as |
before 0:7.12.1-11.1.el4_7.1 | 0:7.12.1-11.1.el4_7.1 |
curl-develRed Hat:enterprise_linux:4::as |
before 0:7.12.1-11.1.el4_7.1 | 0:7.12.1-11.1.el4_7.1 |
curlRed Hat:enterprise_linux:4::desktop |
before 0:7.12.1-11.1.el4_7.1 | 0:7.12.1-11.1.el4_7.1 |
curl-debuginfoRed Hat:enterprise_linux:4::desktop |
before 0:7.12.1-11.1.el4_7.1 | 0:7.12.1-11.1.el4_7.1 |
curl-develRed Hat:enterprise_linux:4::desktop |
before 0:7.12.1-11.1.el4_7.1 | 0:7.12.1-11.1.el4_7.1 |
curlRed Hat:enterprise_linux:4::es |
before 0:7.12.1-11.1.el4_7.1 | 0:7.12.1-11.1.el4_7.1 |
curl-debuginfoRed Hat:enterprise_linux:4::es |
before 0:7.12.1-11.1.el4_7.1 | 0:7.12.1-11.1.el4_7.1 |
curl-develRed Hat:enterprise_linux:4::es |
before 0:7.12.1-11.1.el4_7.1 | 0:7.12.1-11.1.el4_7.1 |
curlRed Hat:enterprise_linux:4::ws |
before 0:7.12.1-11.1.el4_7.1 | 0:7.12.1-11.1.el4_7.1 |
curl-debuginfoRed Hat:enterprise_linux:4::ws |
before 0:7.12.1-11.1.el4_7.1 | 0:7.12.1-11.1.el4_7.1 |
curl-develRed Hat:enterprise_linux:4::ws |
before 0:7.12.1-11.1.el4_7.1 | 0:7.12.1-11.1.el4_7.1 |
curlRed Hat:enterprise_linux:5::client_workstation |
before 0:7.15.5-2.1.el5_3.4 | 0:7.15.5-2.1.el5_3.4 |
curl-debuginfoRed Hat:enterprise_linux:5::client_workstation |
before 0:7.15.5-2.1.el5_3.4 | 0:7.15.5-2.1.el5_3.4 |
curl-develRed Hat:enterprise_linux:5::client_workstation |
before 0:7.15.5-2.1.el5_3.4 | 0:7.15.5-2.1.el5_3.4 |
curlRed Hat:enterprise_linux:5::client |
before 0:7.15.5-2.1.el5_3.4 | 0:7.15.5-2.1.el5_3.4 |
curl-debuginfoRed Hat:enterprise_linux:5::client |
before 0:7.15.5-2.1.el5_3.4 | 0:7.15.5-2.1.el5_3.4 |
curlRed Hat:enterprise_linux:5::server |
before 0:7.15.5-2.1.el5_3.4 | 0:7.15.5-2.1.el5_3.4 |
curl-debuginfoRed Hat:enterprise_linux:5::server |
before 0:7.15.5-2.1.el5_3.4 | 0:7.15.5-2.1.el5_3.4 |
curl-develRed Hat:enterprise_linux:5::server |
before 0:7.15.5-2.1.el5_3.4 | 0:7.15.5-2.1.el5_3.4 |
curlopenSUSE:Tumbleweed From an advisory covering 32 CVEs |
before 7.51.0-1.1 | 7.51.0-1.1 |
Public exploits
Links only. Every CVE stores no exploit code.
| Source | Link | Date |
|---|---|---|
| Exploit-DB | cURL/libcURL 7.19.3 - HTTP 'Location:' Redirect Security Bypass | 2009-03-03 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| aliases | EUVD | |
| first indexed | CVE List, Exploit-DB, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2009-0037 is a medium vulnerability (CVSS 6.8) in Curl, published March 3, 2009. Public exploit code exists. EPSS puts the chance of exploitation in the next 30 days at 9.05%, the 95th percentile. Fixed in curl 7.18.2-8.1.
References
ubuntu.com/usn/USN-726-1
secunia.com/advisories/34259
curl.haxx.se/lxr/source/CHANGES
secunia.com/advisories/35766
secunia.com/advisories/34255
redhat.com/support/errata/RHSA-2009-0341.html
Show 67 moreShow less
debian.org/security/2009/dsa-1738
withdk.com/2009/03/03/curllibcurl-redirect-arbitrary-file-access
exchange.xforce.ibmcloud.com/vulnerabilities/49030
vupen.com/english/advisories/2009/1865
lists.apple.com/archives/security-announce/2010//Mar/msg00001.html
wiki.rpath.com/wiki/Advisories:rPSA-2009-0042
lists.opensuse.org/opensuse-security-announce/2009-03/msg00001.html
secunia.com/advisories/34138
curl.haxx.se/docs/adv_20090303.html
secunia.com/advisories/34202
securityfocus.com/archive/1/501757/100/0/threaded
vupen.com/english/advisories/2009/0581
slackware.com/security/viewer.php?l=slackware-security&y=2009&m=slackware-security.476602
lists.vmware.com/pipermail/security-announce/2009/000060.html
securityfocus.com/bid/33962
support.apple.com/kb/HT4077
withdk.com/archives/Libcurl_arbitrary_file_access.pdf
oval.cisecurity.org/repository/search/definition/oval%3Aorg.mitre.oval%3Adef%3A11054
security.gentoo.org/glsa/glsa-200903-21.xml
oval.cisecurity.org/repository/search/definition/oval%3Aorg.mitre.oval%3Adef%3A6074
securitytracker.com/id?1021783
secunia.com/advisories/34251
secunia.com/advisories/34399
securityfocus.com/archive/1/504849/100/0/threaded
secunia.com/advisories/34237
vmware.com/security/advisories/VMSA-2009-0009.html
nvd.nist.gov/vuln/detail/CVE-2009-0037
github.com/advisories/GHSA-jr23-52fg-m7rm
security-tracker.debian.org/tracker/CVE-2009-0037
access.redhat.com/errata/RHSA-2009:0341
redhat.com/security/updates/classification
bugzilla.redhat.com/show_bug.cgi?id=485271
security.access.redhat.com/data/csaf/v2/advisories/2009/rhsa-2009_0341.json
access.redhat.com/security/cve/CVE-2009-0037
cve.org/CVERecord?id=CVE-2009-0037
suse.com/security/cve/CVE-2009-0037
suse.com/security/cve/CVE-2009-2417
suse.com/security/cve/CVE-2013-0249
suse.com/security/cve/CVE-2013-1944
suse.com/security/cve/CVE-2013-2174
suse.com/security/cve/CVE-2013-4545
suse.com/security/cve/CVE-2014-0015
suse.com/security/cve/CVE-2014-0138
suse.com/security/cve/CVE-2014-0139
suse.com/security/cve/CVE-2014-3613
suse.com/security/cve/CVE-2014-3620
suse.com/security/cve/CVE-2014-8150
suse.com/security/cve/CVE-2015-3143
suse.com/security/cve/CVE-2015-3144
suse.com/security/cve/CVE-2015-3145
suse.com/security/cve/CVE-2015-3148
suse.com/security/cve/CVE-2015-3153
suse.com/security/cve/CVE-2015-3236
suse.com/security/cve/CVE-2015-3237
suse.com/security/cve/CVE-2016-0755
suse.com/security/cve/CVE-2016-7167
suse.com/security/cve/CVE-2016-8615
suse.com/security/cve/CVE-2016-8616
suse.com/security/cve/CVE-2016-8617
suse.com/security/cve/CVE-2016-8618
suse.com/security/cve/CVE-2016-8619
suse.com/security/cve/CVE-2016-8620
suse.com/security/cve/CVE-2016-8621
suse.com/security/cve/CVE-2016-8622
suse.com/security/cve/CVE-2016-8623
suse.com/security/cve/CVE-2016-8624
suse.com/security/cve/CVE-2016-8625