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.
References
Link | Resource |
---|---|
http://www.debian.org/security/2017/dsa-4007 | Third Party Advisory |
http://www.securityfocus.com/bid/101519 | Third Party Advisory VDB Entry |
http://www.securitytracker.com/id/1039644 | Third Party Advisory VDB Entry |
https://access.redhat.com/errata/RHSA-2017:3263 | |
https://access.redhat.com/errata/RHSA-2018:2486 | |
https://access.redhat.com/errata/RHSA-2018:3558 | |
https://curl.haxx.se/docs/adv_20171023.html | Vendor Advisory |
https://security.gentoo.org/glsa/201712-04 |
Configurations
History
No history.
Information
Published : 2017-10-31 21:29
Updated : 2024-02-04 19:29
NVD link : CVE-2017-1000257
Mitre link : CVE-2017-1000257
CVE.ORG link : CVE-2017-1000257
JSON object : View
Products Affected
haxx
- libcurl
debian
- debian_linux
CWE
CWE-119
Improper Restriction of Operations within the Bounds of a Memory Buffer