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.
CVSS Details
- CVSS 3.1 Base Score: 9.1
- CVSS 3.1 Vector: (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H)
- CVSS 3.0 Vector: (CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alpine Linux | alpine-linux-upgrade-curl | Oct 31, 2017 | Oct 31, 2017 | |
| Amazon_linux | — | amazon-linux-upgrade-curl | Nov 21, 2017 | Oct 31, 2017 |
| Centos_linux | — | centos-upgrade-curlcentos-upgrade-curl-debuginfocentos-upgrade-libcurlcentos-upgrade-libcurl-devel | Nov 28, 2017 | Oct 31, 2017 |
| Redhat_linux | — | redhat-upgrade-curlredhat-upgrade-curl-debuginforedhat-upgrade-libcurlredhat-upgrade-libcurl-devel | Nov 27, 2017 | Oct 31, 2017 |
| Suse | — | suse-upgrade-curlsuse-upgrade-libcurl-develsuse-upgrade-libcurl4suse-upgrade-libcurl4-32bit | Nov 1, 2017 | Oct 31, 2017 |
| Ubuntu | ubuntu-upgrade-curlubuntu-upgrade-libcurl3ubuntu-upgrade-libcurl3-gnutlsubuntu-upgrade-libcurl3-nss | Apr 25, 2018 | Oct 23, 2017 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub