Every CVE Search/ Get API key

CVE-2009-0037

The redirect implementation in curl and libcurl 5.11 through 7.19.3, when CURLOPT_FOLLOWLOCATION...

6.8 MediumPublic exploitFix available

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

9.05%Down 3.5 points since Feb 4, 2022
90%50%10%1%

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 MediumAV: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

Affected packages
PackageAffectedFixed
curl
Debian:12
before 7.18.2-8.1
7.18.2-8.1
curl
Debian:13
before 7.18.2-8.1
7.18.2-8.1
curl
Debian:14
before 7.18.2-8.1
7.18.2-8.1
curl
Debian:4.0
before 7.15.5-1etch2, plus listed versions
7.15.5-17.15.5-1etch1
7.15.5-1etch2
curl
Debian:5.0
before 7.18.2-8lenny2, plus listed versions
7.18.2-8
7.18.2-8lenny2
curl
Red Hat:enterprise_linux:2.1::as
before 0:7.8-3.rhel2
0:7.8-3.rhel2
curl-devel
Red Hat:enterprise_linux:2.1::as
before 0:7.8-3.rhel2
0:7.8-3.rhel2
curl
Red Hat:enterprise_linux:2.1::aw
before 0:7.8-3.rhel2
0:7.8-3.rhel2
curl-devel
Red Hat:enterprise_linux:2.1::aw
before 0:7.8-3.rhel2
0:7.8-3.rhel2
curl
Red Hat:enterprise_linux:2.1::es
before 0:7.8-3.rhel2
0:7.8-3.rhel2
Show 36 moreShow less
Affected packages
PackageAffectedFixed
curl-devel
Red Hat:enterprise_linux:2.1::es
before 0:7.8-3.rhel2
0:7.8-3.rhel2
curl
Red Hat:enterprise_linux:2.1::ws
before 0:7.8-3.rhel2
0:7.8-3.rhel2
curl-devel
Red Hat:enterprise_linux:2.1::ws
before 0:7.8-3.rhel2
0:7.8-3.rhel2
curl
Red Hat:enterprise_linux:3::as
before 0:7.10.6-9.rhel3
0:7.10.6-9.rhel3
curl-debuginfo
Red Hat:enterprise_linux:3::as
before 0:7.10.6-9.rhel3
0:7.10.6-9.rhel3
curl-devel
Red Hat:enterprise_linux:3::as
before 0:7.10.6-9.rhel3
0:7.10.6-9.rhel3
curl
Red Hat:enterprise_linux:3::desktop
before 0:7.10.6-9.rhel3
0:7.10.6-9.rhel3
curl-debuginfo
Red Hat:enterprise_linux:3::desktop
before 0:7.10.6-9.rhel3
0:7.10.6-9.rhel3
curl-devel
Red Hat:enterprise_linux:3::desktop
before 0:7.10.6-9.rhel3
0:7.10.6-9.rhel3
curl
Red Hat:enterprise_linux:3::es
before 0:7.10.6-9.rhel3
0:7.10.6-9.rhel3
curl-debuginfo
Red Hat:enterprise_linux:3::es
before 0:7.10.6-9.rhel3
0:7.10.6-9.rhel3
curl-devel
Red Hat:enterprise_linux:3::es
before 0:7.10.6-9.rhel3
0:7.10.6-9.rhel3
curl
Red Hat:enterprise_linux:3::ws
before 0:7.10.6-9.rhel3
0:7.10.6-9.rhel3
curl-debuginfo
Red Hat:enterprise_linux:3::ws
before 0:7.10.6-9.rhel3
0:7.10.6-9.rhel3
curl-devel
Red Hat:enterprise_linux:3::ws
before 0:7.10.6-9.rhel3
0:7.10.6-9.rhel3
curl
Red 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-debuginfo
Red 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-devel
Red 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
Red 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-debuginfo
Red 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-devel
Red 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
Red 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-debuginfo
Red 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-devel
Red 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
Red 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-debuginfo
Red 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-devel
Red 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
Red 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-debuginfo
Red 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-devel
Red 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
Red 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-debuginfo
Red 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
Red 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-debuginfo
Red 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-devel
Red 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
openSUSE: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.

Public exploits
SourceLinkDate
Exploit-DBcURL/libcURL 7.19.3 - HTTP 'Location:' Redirect Security Bypass2009-03-03

History

History
RecordedChangedSources
affected, facts
aliasesEUVD
first indexedCVE 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

Show 67 moreShow less
MoveEnter Open