
====================================================================

                              CERT-Renater

                 Note d'Information No. 2017/VULN184
_____________________________________________________________________

DATE                : 15/06/2017

HARDWARE PLATFORM(S): /

OPERATING SYSTEM(S): Systems running curl, libcurl versions prior to
                                         7.54.1.

=====================================================================
https://curl.haxx.se/docs/adv_20170614.html
____________________________________________________________________

URL file scheme drive letter buffer overflow

Project curl Security Advisory, June 14th 2017


VULNERABILITY

When libcurl is given either

    a file: URL that doesn't use two slashes following the colon, or
    is told that file is the default scheme to use for URLs without
    scheme

... and the given path starts with a drive letter and libcurl is built
for Windows or DOS, then libcurl would copy the path with a wrong
offset, so that the end of the given path would write beyond the malloc
buffer. Up to seven bytes too much.

We are not aware of any exploit of this flaw.


INFO

This flaw also affects the curl command line tool. It was introduced in
commit 1d4202ade602, discussed in issue #1124.

HTTP redirects to file: URLs are not affected.

For version 7.54.1, the function that cleans up the file: URLs is fixed
to not copy things out of the buffer!

The Common Vulnerabilities and Exposures (CVE) project has assigned the
name CVE-2017-9502 to this issue.


AFFECTED VERSIONS

This bug is present on libcurl builds that accept drive letters in file
names, which is limited to Windows and DOS builds, including cygwin.

    Affected versions: libcurl 7.53.0 to and including 7.54.0
    Not affected versions: libcurl < 7.53.0 and >= 7.54.1

libcurl is used by many applications, but not always advertised as such!


THE SOLUTION

The function now takes better care to allocate memory enough to store
what's copied and to copy the strings to the correct output offsets.

A patch for CVE-2017-9502 is available.


RECOMMENDATIONS

We suggest you take one of the following actions immediately, in order
of preference:

A - Upgrade curl and libcurl to version 7.54.1

B - Apply the patch to your version and rebuild

C - Do not use file URLs on Windows


TIME LINE

It was reported to the curl project on June 4, 2017. We contacted MITRE
on June 7.

libcurl 7.54.1 was released on June 14 2017, coordinated with the
publication of this advisory.


CREDITS

Reported by Marcel Raad. Patch by Daniel Stenberg.

Thanks a lot!

==========================================================
+ CERT-RENATER          | tel : 01-53-94-20-44           +
+ 23 - 25 Rue Daviel    | fax : 01-53-94-20-41           +
+ 75013 Paris           | email: cert@support.renater.fr +
==========================================================


