curl supports "globbing" of URLs, in which a user can pass a numerical range to have the tool iterate over those numbers to do a sequence of transfers. In the globbing function that parses the numerical range, there was an omission that made curl read a byte beyond the end of the URL if given a carefully crafted, or just wrongly written, URL. The URL is stored in a heap based buffer, so it could then be made to wrongly read something else instead of crashing. An example of a URL that triggers the flaw would be `http://ur%20[0-60000000000000000000`.
The product performs operations on a memory buffer, but it reads from or writes to a memory location outside the buffer's intended boundary. This may result in read or write operations on unexpected memory locations that could be linked to other variables, data structures, or internal program data.
Link | Tags |
---|---|
https://support.apple.com/HT208221 | |
https://access.redhat.com/errata/RHSA-2018:3558 | vendor advisory |
https://security.gentoo.org/glsa/201709-14 | vendor advisory third party advisory issue tracking |
https://curl.haxx.se/docs/adv_20170809A.html | vendor advisory issue tracking |
http://www.securitytracker.com/id/1039117 | third party advisory vdb entry |
http://www.securityfocus.com/bid/100249 | third party advisory vdb entry |
http://www.debian.org/security/2017/dsa-3992 | vendor advisory |