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
.
{ "availability": "No subscription required", "binaries": [ { "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", "binary_version": "7.35.0-1ubuntu2.11" } ] }
{ "availability": "No subscription required", "binaries": [ { "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", "binary_version": "7.47.0-1ubuntu2.3" } ] }