Buffer overflow in Haxx Libcurl

CVE-2017-1000257

An IMAP FETCH response line indicates the size of the returned data, in number of bytes. When that response says the data is zero bytes, libcurl would pass on that (non-existing) data with a pointer and the size (zero) to the deliver-data function. libcurl's deliver-data function treats zero as a magic number and invokes strlen() on the data to figure out the length. The strlen() is called on a heap based buffer that might not be zero terminated so libcurl might read beyond the end of it into whatever memory lies after (or just crash) and then deliver that to the application as if it was actually downloaded.

Vulnerability class: Buffer Overflow

EPSS: 0.062 (93.0th percentile) — read the EPSS interpretation.

CVSS v3 metric

CVSS v3 base score 9.1 (Critical). Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H.

Affected products

Weakness classification (CWE)

Public proof-of-concept exploits

References

Frequently asked questions

What is CVE-2017-1000257?
CVE-2017-1000257 is a critical-severity vulnerability in Haxx Libcurl, classified under Improper Restriction of Operations within the Bounds of a Memory Buffer. CVSS score: 9.1/10. Published 2017-10-31.
How severe is CVE-2017-1000257?
Critical severity. CVSS v3 base score is 9.1 out of 10.
Is CVE-2017-1000257 known to be exploited?
2 public proof-of-concept repositories are indexed. Not currently listed in the CISA KEV catalog.