A heap-based buffer overflow can happen when closing down an FTP connection with very long server command replies. When doing FTP transfers, curl keeps a spare "closure handle" around internally that will be used when an FTP connection gets shut down since the original curl easy handle is then already removed. FTP server response data that gets cached from the original transfer might then be larger than the default buffer size (16 KB) allocated in the "closure handle", which can lead to a buffer overwrite. The contents and size of that overwrite is controllable by the server. This situation was detected by an assert() in the code, but that was of course only preventing bad stuff in debug builds. This bug is very unlikely to trigger with non-malicious servers. This issue was introduced by: https://github.com/curl/curl/commit/e40e9d7f0decc79 Affected versions: curl 7.54.1 to and including curl 7.59.0 Not affected versions: curl < 7.54.1 and curl >= 7.60.0
Acknowledgments: Name: the Curl project Upstream: Dario Weisser
Created attachment 1432531 [details] Upstream patch
External References: https://curl.haxx.se/docs/adv_2018-82c2.html
Created curl tracking bugs for this issue: Affects: fedora-all [bug 1578683] Created mingw-curl tracking bugs for this issue: Affects: fedora-all [bug 1578684]