cURL TFTP URL Processing Bug Lets Remote Users Obtain Potentially Sensitive Information on the Target System
SecurityTracker Alert ID: 1039118|
SecurityTracker URL: http://securitytracker.com/id/1039118
(Links to External Site)
Date: Aug 10 2017
Disclosure of system information|
Fix Available: Yes Vendor Confirmed: Yes |
Version(s): 7.15.0 - 7.54.1|
A vulnerability was reported in cURL. A remote user can obtain potentially sensitive information on the target system.|
A remote user (e.g., HTTP server) can redirect the target user's curl request to a TFTP URL with a long filename to cause the target user's curl application to send portions of system memory to the remote user.
Both the curl command line tool and the libcurl library are affected.
Even Rouault reported this vulnerability.
A remote user can obtain potentially sensitive information on the target system.|
The vendor has issued a fix (7.55.0).|
The vendor advisory is available at:
Vendor URL: curl.haxx.se/docs/adv_20170809B.html (Links to External Site)
|Underlying OS: Linux (Any), UNIX (Any), Windows (Any)|
Source Message Contents
Date: Wed, 9 Aug 2017 08:05:47 +0200 (CEST)|
Subject: [oss-security] [SECURITY ADVISORY] curl: TFTP sends more than buffer size
TFTP sends more than buffer size
Project curl Security Advisory, August 9th 2017 -
When doing a TFTP transfer and curl/libcurl is given a URL that contains a
very long file name (longer than about 515 bytes), the file name is truncated
to fit within the buffer boundaries, but the buffer size is still wrongly
updated to use the untruncated length. This too large value is then used in
the `sendto()` call, making curl attempt to send more data than what is
actually put into the buffer. The `sendto()` function will then read beyond
the end of the heap based buffer.
A malicious HTTP(S) server could redirect a vulnerable libcurl-using client to
a crafted TFTP URL (if the client hasn't restricted which protocols it allows
redirects to) and trick it to send private memory contents to a remote server
over UDP. Limit curl's redirect protocols with `--proto-redir` and libcurl's
We are not aware of any exploit of this flaw.
This flaw also affects the curl command line tool.
The Common Vulnerabilities and Exposures (CVE) project has assigned the name
CVE-2017-1000100 to this issue.
This bug has been present in curl since TFTP support was added, in September
2005 (commit [56d9624b566](https://github.com/curl/curl/commit/56d9624b566)).
- Affected versions: libcurl 7.15.0 to and including 7.54.1
- Not affected versions: libcurl < 7.15.0 and >= 7.55.0
libcurl is used by many applications, but not always advertised as such.
The function now returns error if attempting to send a file name that is too
long to fit in the TFTP packet.
A [patch for CVE-2017-1000100](https://curl.haxx.se/CVE-2017-1000100.patch) is
We suggest you take one of the following actions immediately, in order of
A - Upgrade curl and libcurl to version 7.55.0
B - Apply the patch to your version and rebuild
C - Disable TFTP or otherwise restrict TFTP transfers
It was reported to the curl project on July 11, 2017. We contacted
distros@openwall on August 1.
libcurl 7.55.0 was released on August 9 2017, coordinated with the publication
of this advisory.
Reported by Even Rouault. Discovery: credit to OSS-Fuzz. Patch by Daniel
Thanks a lot!