cURL: Off-by-one errors in URL handling cURL is vulnerable to local arbitrary code execution via buffer overflow due to the insecure parsing of URLs. cURL 2005-12-16 2005-12-16 114710 local 7.15.1 7.15.1

cURL is a command line tool for transferring files with URL syntax, supporting numerous protocols.

Stefan Esser from the Hardened-PHP Project has reported a vulnerability in cURL that allows for a local buffer overflow when cURL attempts to parse specially crafted URLs. The URL can be specially crafted in one of two ways: the URL could be malformed in a way that prevents a terminating null byte from being added to either a hostname or path buffer; or the URL could contain a "?" separator in the hostname portion, which causes a "/" to be prepended to the resulting string.

An attacker capable of getting cURL to parse a maliciously crafted URL could cause a denial of service or execute arbitrary code with the privileges of the user making the call to cURL. An attacker could also escape open_basedir or safe_mode pseudo-restrictions when exploiting this problem from within a PHP program when PHP is compiled with libcurl.

There is no known workaround at this time.

All cURL users should upgrade to the latest version:

# emerge --sync # emerge --ask --oneshot --verbose ">=net-misc/curl-7.15.1"
CVE-2005-4077 Hardened-PHP Advisory koon shellsage koon