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 CURLOPTREDIRPROTOCOLS.
{
"source": "CPE_STRING",
"extracted_events": [
{
"introduced": "7.15.0"
},
{
"last_affected": "7.15.0"
},
{
"introduced": "7.15.1"
},
{
"last_affected": "7.15.1"
},
{
"introduced": "7.15.2"
},
{
"last_affected": "7.15.2"
},
{
"introduced": "7.15.3"
},
{
"last_affected": "7.15.3"
},
{
"introduced": "7.15.4"
},
{
"last_affected": "7.15.4"
},
{
"introduced": "7.15.5"
},
{
"last_affected": "7.15.5"
},
{
"introduced": "7.16.0"
},
{
"last_affected": "7.16.0"
},
{
"introduced": "7.16.1"
},
{
"last_affected": "7.16.1"
},
{
"introduced": "7.16.2"
},
{
"last_affected": "7.16.2"
},
{
"introduced": "7.16.3"
},
{
"last_affected": "7.16.3"
},
{
"introduced": "7.16.4"
},
{
"last_affected": "7.16.4"
},
{
"introduced": "7.17.0"
},
{
"last_affected": "7.17.0"
},
{
"introduced": "7.17.1"
},
{
"last_affected": "7.17.1"
},
{
"introduced": "7.18.0"
},
{
"last_affected": "7.18.0"
},
{
"introduced": "7.18.1"
},
{
"last_affected": "7.18.1"
},
{
"introduced": "7.18.2"
},
{
"last_affected": "7.18.2"
},
{
"introduced": "7.19.0"
},
{
"last_affected": "7.19.0"
},
{
"introduced": "7.19.1"
},
{
"last_affected": "7.19.1"
},
{
"introduced": "7.19.2"
},
{
"last_affected": "7.19.2"
},
{
"introduced": "7.19.3"
},
{
"last_affected": "7.19.3"
},
{
"introduced": "7.19.4"
},
{
"last_affected": "7.19.4"
},
{
"introduced": "7.19.5"
},
{
"last_affected": "7.19.5"
},
{
"introduced": "7.19.6"
},
{
"last_affected": "7.19.6"
},
{
"introduced": "7.19.7"
},
{
"last_affected": "7.19.7"
},
{
"introduced": "7.20.0"
},
{
"last_affected": "7.20.0"
},
{
"introduced": "7.20.1"
},
{
"last_affected": "7.20.1"
},
{
"introduced": "7.21.0"
},
{
"last_affected": "7.21.0"
},
{
"introduced": "7.21.1"
},
{
"last_affected": "7.21.1"
},
{
"introduced": "7.21.2"
},
{
"last_affected": "7.21.2"
},
{
"introduced": "7.21.3"
},
{
"last_affected": "7.21.3"
},
{
"introduced": "7.21.4"
},
{
"last_affected": "7.21.4"
},
{
"introduced": "7.21.5"
},
{
"last_affected": "7.21.5"
},
{
"introduced": "7.21.6"
},
{
"last_affected": "7.21.6"
},
{
"introduced": "7.21.7"
},
{
"last_affected": "7.21.7"
},
{
"introduced": "7.22.0"
},
{
"last_affected": "7.22.0"
},
{
"introduced": "7.23.0"
},
{
"last_affected": "7.23.0"
},
{
"introduced": "7.23.1"
},
{
"last_affected": "7.23.1"
},
{
"introduced": "7.24.0"
},
{
"last_affected": "7.24.0"
},
{
"introduced": "7.25.0"
},
{
"last_affected": "7.25.0"
},
{
"introduced": "7.26.0"
},
{
"last_affected": "7.26.0"
},
{
"introduced": "7.27.0"
},
{
"last_affected": "7.27.0"
},
{
"introduced": "7.28.0"
},
{
"last_affected": "7.28.0"
},
{
"introduced": "7.28.1"
},
{
"last_affected": "7.28.1"
},
{
"introduced": "7.29.0"
},
{
"last_affected": "7.29.0"
},
{
"introduced": "7.30.0"
},
{
"last_affected": "7.30.0"
},
{
"introduced": "7.31.0"
},
{
"last_affected": "7.31.0"
},
{
"introduced": "7.32.0"
},
{
"last_affected": "7.32.0"
},
{
"introduced": "7.33.0"
},
{
"last_affected": "7.33.0"
},
{
"introduced": "7.34.0"
},
{
"last_affected": "7.34.0"
},
{
"introduced": "7.35.0"
},
{
"last_affected": "7.35.0"
},
{
"introduced": "7.36.0"
},
{
"last_affected": "7.36.0"
},
{
"introduced": "7.37.0"
},
{
"last_affected": "7.37.0"
},
{
"introduced": "7.37.1"
},
{
"last_affected": "7.37.1"
},
{
"introduced": "7.38.0"
},
{
"last_affected": "7.38.0"
},
{
"introduced": "7.39"
},
{
"last_affected": "7.39"
},
{
"introduced": "7.40.0"
},
{
"last_affected": "7.40.0"
},
{
"introduced": "7.41.0"
},
{
"last_affected": "7.41.0"
},
{
"introduced": "7.42.0"
},
{
"last_affected": "7.42.0"
},
{
"introduced": "7.42.1"
},
{
"last_affected": "7.42.1"
},
{
"introduced": "7.43.0"
},
{
"last_affected": "7.43.0"
},
{
"introduced": "7.44.0"
},
{
"last_affected": "7.44.0"
},
{
"introduced": "7.45.0"
},
{
"last_affected": "7.45.0"
},
{
"introduced": "7.46.0"
},
{
"last_affected": "7.46.0"
},
{
"introduced": "7.47.0"
},
{
"last_affected": "7.47.0"
},
{
"introduced": "7.47.1"
},
{
"last_affected": "7.47.1"
},
{
"introduced": "7.48.0"
},
{
"last_affected": "7.48.0"
},
{
"introduced": "7.49.0"
},
{
"last_affected": "7.49.0"
},
{
"introduced": "7.49.1"
},
{
"last_affected": "7.49.1"
},
{
"introduced": "7.50.0"
},
{
"last_affected": "7.50.0"
},
{
"introduced": "7.50.1"
},
{
"last_affected": "7.50.1"
},
{
"introduced": "7.50.2"
},
{
"last_affected": "7.50.2"
},
{
"introduced": "7.50.3"
},
{
"last_affected": "7.50.3"
},
{
"introduced": "7.51.0"
},
{
"last_affected": "7.51.0"
},
{
"introduced": "7.52.0"
},
{
"last_affected": "7.52.0"
},
{
"introduced": "7.52.1"
},
{
"last_affected": "7.52.1"
},
{
"introduced": "7.53.0"
},
{
"last_affected": "7.53.0"
},
{
"introduced": "7.53.1"
},
{
"last_affected": "7.53.1"
},
{
"introduced": "7.54.0"
},
{
"last_affected": "7.54.0"
},
{
"introduced": "7.54.1"
},
{
"last_affected": "7.54.1"
}
],
"cpe": [
"cpe:2.3:a:haxx:libcurl:7.15.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.15.1:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.15.2:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.15.3:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.15.4:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.15.5:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.16.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.16.1:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.16.2:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.16.3:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.16.4:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.17.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.17.1:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.18.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.18.1:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.18.2:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.19.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.19.1:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.19.2:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.19.3:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.19.4:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.19.5:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.19.6:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.19.7:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.20.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.20.1:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.21.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.21.1:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.21.2:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.21.3:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.21.4:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.21.5:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.21.6:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.21.7:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.22.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.23.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.23.1:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.24.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.25.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.26.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.27.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.28.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.28.1:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.29.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.30.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.31.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.32.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.33.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.34.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.35.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.36.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.37.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.37.1:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.38.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.39:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.40.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.41.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.42.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.42.1:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.43.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.44.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.45.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.46.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.47.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.47.1:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.48.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.49.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.49.1:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.50.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.50.1:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.50.2:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.50.3:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.51.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.52.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.52.1:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.53.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.53.1:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.54.0:*:*:*:*:*:*:*",
"cpe:2.3:a:haxx:libcurl:7.54.1:*:*:*:*:*:*:*"
]
}