cURL: Off-by-one errors in URL handling — GLSA 200512-09

cURL is vulnerable to local arbitrary code execution via buffer overflow due to the insecure parsing of URLs.

Affected packages

net-misc/curl on all architectures
Affected versions < 7.15.1
Unaffected versions >= 7.15.1

Background

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

Description

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.

Impact

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.

Workaround

There is no known workaround at this time.

Resolution

All cURL users should upgrade to the latest version:

 # emerge --sync
 # emerge --ask --oneshot --verbose ">=net-misc/curl-7.15.1"

References

Release date
December 16, 2005

Latest revision
December 16, 2005: 01

Severity
low

Exploitable
local

Bugzilla entries