CVE-2017-1000099
FILE buffer read out of bounds
Project curl Security Advisory, August 9th 2017 - Permalink
VULNERABILITY
When asking to get a file from a file:// URL, libcurl provides a feature that outputs meta-data about the file using HTTP-like headers.
The code doing this would send the wrong buffer to the user (stdout or the application's provide callback), which could lead to other private data from the heap to get inadvertently displayed.
The wrong buffer was an uninitialized memory area allocated on the heap and if it turned out to not contain any zero byte, it would continue and display the data following that buffer in memory.
INFO
This flaw also affects the curl command line tool.
The Common Vulnerabilities and Exposures (CVE) project has assigned the name CVE-2017-1000099 to this issue.
CWE-170: Improper Null Termination
Severity: Medium
AFFECTED VERSIONS
- Affected versions: libcurl 7.54.1 to and including 7.54.1
- Not affected versions: libcurl < 7.54.1 and >= 7.55.0
- Introduced-in: https://github.com/curl/curl/commit/7c312f84ea930d8
libcurl is used by many applications, but not always advertised as such.
SOLUTION
The function now sends the correct buffer to the application.
RECOMMENDATIONS
We suggest you take one of the following actions immediately, in order of preference:
A - Upgrade curl and libcurl to version 7.55.0
B - Apply the patch to your version and rebuild
C - Do not use CURLOPT_NOBODY
and
CURLOPT_HEADER
with file:// URLs
TIMELINE
It was reported to the curl project on July 15, 2017. We contacted distros@openwall on August 1.
libcurl 7.55.0 was released on August 9 2017, coordinated with the publication of this advisory.
CREDITS
- Reported-by: Even Rouault
- Patched-by: Even Rouault
Discovery: credit to OSS-Fuzz.
Thanks a lot!