标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2025-766] 作者: ecawen 发表于: [2017-09-30]
本文共 [964] 位读者顶过
TFTP sends more than buffer sizeProject curl Security Advisory, August 9th 2017 - Permalink [出自:jiwo.org] VULNERABILITYWhen 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 with CURLOPT_REDIR_PROTOCOLS. We are not aware of any exploit of this flaw. INFOThis 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. AFFECTED VERSIONSThis bug has been present in curl since TFTP support was added, in September 2005 (commit 56d9624b566).
libcurl is used by many applications, but not always advertised as such. THE SOLUTIONThe 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 is available. RECOMMENDATIONSWe suggest you take one of the following actions immediately, in order of preference: 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 TIME LINEIt 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. CREDITSReported by Even Rouault. Discovery: credit to OSS-Fuzz. Patch by Daniel Stenberg. Thanks a lot! |