CVE-2017-1000257
CriticalSummary
A vulnerability in libcurl related to improper handling of IMAP FETCH responses when the data size is zero bytes. The deliver-data function may attempt to read data from a buffer that is not properly terminated, potentially leading to reading memory beyond the allocated area.
Risk Assessment
Organizations may be exposed to unexpected application behavior, including crashes or data leaks, which can lead to serious security issues.
Recommendation
It is recommended to update libcurl to the latest version to mitigate this vulnerability and to conduct an audit of applications using this library.
Original NVD description (English source)
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.

