In curl before 7.54.1 on Windows and DOS, libcurl's default protocol function, which is the logic that allows an application to set which protocol libcurl should attempt to use when given a URL without a scheme part, had a flaw that could lead to it overwriting a heap based memory buffer with seven bytes. If the default protocol is specified to be FILE or a file: URL lacks two slashes, the given "URL" starts with a drive letter, and libcurl is built for Windows or DOS, then libcurl would copy the path 7 bytes off, so that the end of the given path would write beyond the malloc buffer (7 bytes being the length in bytes of the ascii string "file://").
The MITRE CVE dictionary describes this issue as:
Find out more about CVE-2017-9502 from the MITRE CVE dictionary dictionary and NIST NVD.
NOTE: The following CVSS v3 metrics and score provided are preliminary and subject to review.
CVSS3 Base Score | 7.8 |
---|---|
CVSS3 Base Metrics | CVSS:3.0/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H |
Attack Vector | Local |
Attack Complexity | Low |
Privileges Required | None |
User Interaction | Required |
Scope | Unchanged |
Confidentiality | High |
Integrity Impact | High |
Availability Impact | High |
Platform | Package | State |
---|---|---|
Red Hat JBoss Web Server 3 | curl | Not affected |
Red Hat Enterprise Linux 7 | curl | Not affected |
Red Hat Enterprise Linux 6 | curl | Not affected |
Red Hat Enterprise Linux 5 | curl | Not affected |
RHEV Manager 3 | mingw-virt-viewer | Not affected |
.NET Core 2.0 on Red Hat Enterprise Linux | rh-dotnet20-curl | Not affected |
.NET Core 1.0 on Red Hat Enterprise Linux | rh-dotnetcore10-curl | Not affected |
.NET Core 1.0 on Red Hat Enterprise Linux | rh-dotnetcore11-curl | Not affected |