lftp is a multithreaded command-line based FTP client. It allows you to execute multiple commands simultaneously or in the background. If features mirroring capabilities, resuming downloads, etc.
Two buffer overflows exist in lftp. Both can occur when the user connects to a malicious web server using the HTTP or HTTPS protocol and issues lftp's "ls" or "rels" commands.
Ulf Harnhammar explains:
Technically, the problem lies in the file src/HttpDir.cc and the functions try_netscape_proxy() and try_squid_eplf(), which both have sscanf() calls that take data of an arbitrary length and store it in a char array with 32 elements. (Back in version 2.3.0, the problematic code was located in some other function, but the problem existed back then too.) Depending on the HTML document in the specially prepared directory, buffers will be overflown in either one function or the other.
When a user issues "ls" or "rels" on a malicious server, the tftp application can be tricked into running arbitrary code on the user his machine.
There is no workaround available.
All Gentoo users who have net-ftp/lftp installed should update to use version 2.6.0 or higher using these commands:
# emerge sync
# emerge -pv '>=net-ftp/lftp-2.6.10'
# emerge '>=net-ftp/lftp-2.6.10'
# emerge clean