CVE-2017-1000100

Name
CVE-2017-1000100
Description
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 endto() 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.
NVD Severity
unknown
Other trackers
Mailing lists
Exploits
Forges
GitHub (code, issues), Aports (code, issues)

References

Type URI
cve@mitre.org http://www.debian.org/security/2017/dsa-3992
Third Party Advisory http://www.securityfocus.com/bid/100286
Third Party Advisory http://www.securitytracker.com/id/1039118
cve@mitre.org https://access.redhat.com/errata/RHSA-2018:3558
Patch https://curl.haxx.se/docs/adv_20170809B.html
Patch https://security.gentoo.org/glsa/201709-14
cve@mitre.org https://support.apple.com/HT208221

Match rules

CPE URI Source package Min version Max version
cpe:2.3:a:haxx:libcurl:7.15.0:*:*:*:*:*:*:* libcurl == None == 7.15.0
cpe:2.3:a:haxx:libcurl:7.15.1:*:*:*:*:*:*:* libcurl == None == 7.15.1
cpe:2.3:a:haxx:libcurl:7.15.2:*:*:*:*:*:*:* libcurl == None == 7.15.2
cpe:2.3:a:haxx:libcurl:7.15.3:*:*:*:*:*:*:* libcurl == None == 7.15.3
cpe:2.3:a:haxx:libcurl:7.15.4:*:*:*:*:*:*:* libcurl == None == 7.15.4
cpe:2.3:a:haxx:libcurl:7.15.5:*:*:*:*:*:*:* libcurl == None == 7.15.5
cpe:2.3:a:haxx:libcurl:7.16.0:*:*:*:*:*:*:* libcurl == None == 7.16.0
cpe:2.3:a:haxx:libcurl:7.16.1:*:*:*:*:*:*:* libcurl == None == 7.16.1
cpe:2.3:a:haxx:libcurl:7.16.2:*:*:*:*:*:*:* libcurl == None == 7.16.2
cpe:2.3:a:haxx:libcurl:7.16.3:*:*:*:*:*:*:* libcurl == None == 7.16.3
cpe:2.3:a:haxx:libcurl:7.16.4:*:*:*:*:*:*:* libcurl == None == 7.16.4
cpe:2.3:a:haxx:libcurl:7.17.0:*:*:*:*:*:*:* libcurl == None == 7.17.0
cpe:2.3:a:haxx:libcurl:7.17.1:*:*:*:*:*:*:* libcurl == None == 7.17.1
cpe:2.3:a:haxx:libcurl:7.18.0:*:*:*:*:*:*:* libcurl == None == 7.18.0
cpe:2.3:a:haxx:libcurl:7.18.1:*:*:*:*:*:*:* libcurl == None == 7.18.1
cpe:2.3:a:haxx:libcurl:7.18.2:*:*:*:*:*:*:* libcurl == None == 7.18.2
cpe:2.3:a:haxx:libcurl:7.19.0:*:*:*:*:*:*:* libcurl == None == 7.19.0
cpe:2.3:a:haxx:libcurl:7.19.1:*:*:*:*:*:*:* libcurl == None == 7.19.1
cpe:2.3:a:haxx:libcurl:7.19.2:*:*:*:*:*:*:* libcurl == None == 7.19.2
cpe:2.3:a:haxx:libcurl:7.19.3:*:*:*:*:*:*:* libcurl == None == 7.19.3
cpe:2.3:a:haxx:libcurl:7.19.4:*:*:*:*:*:*:* libcurl == None == 7.19.4
cpe:2.3:a:haxx:libcurl:7.19.5:*:*:*:*:*:*:* libcurl == None == 7.19.5
cpe:2.3:a:haxx:libcurl:7.19.6:*:*:*:*:*:*:* libcurl == None == 7.19.6
cpe:2.3:a:haxx:libcurl:7.19.7:*:*:*:*:*:*:* libcurl == None == 7.19.7
cpe:2.3:a:haxx:libcurl:7.20.0:*:*:*:*:*:*:* libcurl == None == 7.20.0
cpe:2.3:a:haxx:libcurl:7.20.1:*:*:*:*:*:*:* libcurl == None == 7.20.1
cpe:2.3:a:haxx:libcurl:7.21.0:*:*:*:*:*:*:* libcurl == None == 7.21.0
cpe:2.3:a:haxx:libcurl:7.21.1:*:*:*:*:*:*:* libcurl == None == 7.21.1
cpe:2.3:a:haxx:libcurl:7.21.2:*:*:*:*:*:*:* libcurl == None == 7.21.2
cpe:2.3:a:haxx:libcurl:7.21.3:*:*:*:*:*:*:* libcurl == None == 7.21.3
cpe:2.3:a:haxx:libcurl:7.21.4:*:*:*:*:*:*:* libcurl == None == 7.21.4
cpe:2.3:a:haxx:libcurl:7.21.5:*:*:*:*:*:*:* libcurl == None == 7.21.5
cpe:2.3:a:haxx:libcurl:7.21.6:*:*:*:*:*:*:* libcurl == None == 7.21.6
cpe:2.3:a:haxx:libcurl:7.21.7:*:*:*:*:*:*:* libcurl == None == 7.21.7
cpe:2.3:a:haxx:libcurl:7.22.0:*:*:*:*:*:*:* libcurl == None == 7.22.0
cpe:2.3:a:haxx:libcurl:7.23.0:*:*:*:*:*:*:* libcurl == None == 7.23.0
cpe:2.3:a:haxx:libcurl:7.23.1:*:*:*:*:*:*:* libcurl == None == 7.23.1
cpe:2.3:a:haxx:libcurl:7.24.0:*:*:*:*:*:*:* libcurl == None == 7.24.0
cpe:2.3:a:haxx:libcurl:7.25.0:*:*:*:*:*:*:* libcurl == None == 7.25.0
cpe:2.3:a:haxx:libcurl:7.26.0:*:*:*:*:*:*:* libcurl == None == 7.26.0
cpe:2.3:a:haxx:libcurl:7.27.0:*:*:*:*:*:*:* libcurl == None == 7.27.0
cpe:2.3:a:haxx:libcurl:7.28.0:*:*:*:*:*:*:* libcurl == None == 7.28.0
cpe:2.3:a:haxx:libcurl:7.28.1:*:*:*:*:*:*:* libcurl == None == 7.28.1
cpe:2.3:a:haxx:libcurl:7.29.0:*:*:*:*:*:*:* libcurl == None == 7.29.0
cpe:2.3:a:haxx:libcurl:7.30.0:*:*:*:*:*:*:* libcurl == None == 7.30.0
cpe:2.3:a:haxx:libcurl:7.31.0:*:*:*:*:*:*:* libcurl == None == 7.31.0
cpe:2.3:a:haxx:libcurl:7.32.0:*:*:*:*:*:*:* libcurl == None == 7.32.0
cpe:2.3:a:haxx:libcurl:7.33.0:*:*:*:*:*:*:* libcurl == None == 7.33.0
cpe:2.3:a:haxx:libcurl:7.34.0:*:*:*:*:*:*:* libcurl == None == 7.34.0
cpe:2.3:a:haxx:libcurl:7.35.0:*:*:*:*:*:*:* libcurl == None == 7.35.0
cpe:2.3:a:haxx:libcurl:7.36.0:*:*:*:*:*:*:* libcurl == None == 7.36.0
cpe:2.3:a:haxx:libcurl:7.37.0:*:*:*:*:*:*:* libcurl == None == 7.37.0
cpe:2.3:a:haxx:libcurl:7.37.1:*:*:*:*:*:*:* libcurl == None == 7.37.1
cpe:2.3:a:haxx:libcurl:7.38.0:*:*:*:*:*:*:* libcurl == None == 7.38.0
cpe:2.3:a:haxx:libcurl:7.39:*:*:*:*:*:*:* libcurl == None == 7.39
cpe:2.3:a:haxx:libcurl:7.40.0:*:*:*:*:*:*:* libcurl == None == 7.40.0
cpe:2.3:a:haxx:libcurl:7.41.0:*:*:*:*:*:*:* libcurl == None == 7.41.0
cpe:2.3:a:haxx:libcurl:7.42.0:*:*:*:*:*:*:* libcurl == None == 7.42.0
cpe:2.3:a:haxx:libcurl:7.42.1:*:*:*:*:*:*:* libcurl == None == 7.42.1
cpe:2.3:a:haxx:libcurl:7.43.0:*:*:*:*:*:*:* libcurl == None == 7.43.0
cpe:2.3:a:haxx:libcurl:7.44.0:*:*:*:*:*:*:* libcurl == None == 7.44.0
cpe:2.3:a:haxx:libcurl:7.45.0:*:*:*:*:*:*:* libcurl == None == 7.45.0
cpe:2.3:a:haxx:libcurl:7.46.0:*:*:*:*:*:*:* libcurl == None == 7.46.0
cpe:2.3:a:haxx:libcurl:7.47.0:*:*:*:*:*:*:* libcurl == None == 7.47.0
cpe:2.3:a:haxx:libcurl:7.47.1:*:*:*:*:*:*:* libcurl == None == 7.47.1
cpe:2.3:a:haxx:libcurl:7.48.0:*:*:*:*:*:*:* libcurl == None == 7.48.0
cpe:2.3:a:haxx:libcurl:7.49.0:*:*:*:*:*:*:* libcurl == None == 7.49.0
cpe:2.3:a:haxx:libcurl:7.49.1:*:*:*:*:*:*:* libcurl == None == 7.49.1
cpe:2.3:a:haxx:libcurl:7.50.0:*:*:*:*:*:*:* libcurl == None == 7.50.0
cpe:2.3:a:haxx:libcurl:7.50.1:*:*:*:*:*:*:* libcurl == None == 7.50.1
cpe:2.3:a:haxx:libcurl:7.50.2:*:*:*:*:*:*:* libcurl == None == 7.50.2
cpe:2.3:a:haxx:libcurl:7.50.3:*:*:*:*:*:*:* libcurl == None == 7.50.3
cpe:2.3:a:haxx:libcurl:7.51.0:*:*:*:*:*:*:* libcurl == None == 7.51.0
cpe:2.3:a:haxx:libcurl:7.52.0:*:*:*:*:*:*:* libcurl == None == 7.52.0
cpe:2.3:a:haxx:libcurl:7.52.1:*:*:*:*:*:*:* libcurl == None == 7.52.1
cpe:2.3:a:haxx:libcurl:7.53.0:*:*:*:*:*:*:* libcurl == None == 7.53.0
cpe:2.3:a:haxx:libcurl:7.53.1:*:*:*:*:*:*:* libcurl == None == 7.53.1
cpe:2.3:a:haxx:libcurl:7.54.0:*:*:*:*:*:*:* libcurl == None == 7.54.0
cpe:2.3:a:haxx:libcurl:7.54.1:*:*:*:*:*:*:* libcurl == None == 7.54.1

Vulnerable and fixed packages

Source package Branch Version Maintainer Status
curl edge-main 7.55.0-r0 None fixed
curl 3.22-main 7.55.0-r0 None fixed
curl 3.21-main 7.55.0-r0 None fixed
curl 3.20-main 7.55.0-r0 None fixed
curl 3.19-main 7.55.0-r0 None fixed
curl 3.18-main 7.55.0-r0 None fixed
curl 3.17-main 7.55.0-r0 None fixed
curl 3.12-main 7.55.0-r0 None fixed
curl 3.11-main 7.55.0-r0 None fixed
curl 3.10-main 7.55.0-r0 None fixed