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.
{
"binaries": [
{
"binary_version": "7.35.0-1ubuntu2.11",
"binary_name": "curl"
},
{
"binary_version": "7.35.0-1ubuntu2.11",
"binary_name": "libcurl3"
},
{
"binary_version": "7.35.0-1ubuntu2.11",
"binary_name": "libcurl3-gnutls"
},
{
"binary_version": "7.35.0-1ubuntu2.11",
"binary_name": "libcurl3-nss"
},
{
"binary_version": "7.35.0-1ubuntu2.11",
"binary_name": "libcurl4-gnutls-dev"
},
{
"binary_version": "7.35.0-1ubuntu2.11",
"binary_name": "libcurl4-nss-dev"
},
{
"binary_version": "7.35.0-1ubuntu2.11",
"binary_name": "libcurl4-openssl-dev"
}
],
"availability": "No subscription required"
}
{
"binaries": [
{
"binary_version": "7.47.0-1ubuntu2.3",
"binary_name": "curl"
},
{
"binary_version": "7.47.0-1ubuntu2.3",
"binary_name": "libcurl3"
},
{
"binary_version": "7.47.0-1ubuntu2.3",
"binary_name": "libcurl3-gnutls"
},
{
"binary_version": "7.47.0-1ubuntu2.3",
"binary_name": "libcurl3-nss"
},
{
"binary_version": "7.47.0-1ubuntu2.3",
"binary_name": "libcurl4-gnutls-dev"
},
{
"binary_version": "7.47.0-1ubuntu2.3",
"binary_name": "libcurl4-nss-dev"
},
{
"binary_version": "7.47.0-1ubuntu2.3",
"binary_name": "libcurl4-openssl-dev"
}
],
"availability": "No subscription required"
}