Two buffer overflows in lftp
Gentoo Linux Security Advisory
||GLSA 200312-07 / lftp
||December 13, 2003
All supported architectures
Two buffer overflow problems are found in lftp that, in case the user visits
a malicious ftp server, could lead to malicious code being executed.
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
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:
Code Listing 3.1: Resolution
# emerge sync
# emerge -pv '>=net-ftp/lftp-2.6.10'
# emerge '>=net-ftp/lftp-2.6.10'
# emerge clean