Two buffer overflows in lftp — GLSA 200312-07

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.

Affected packages

net-ftp/lftp on all architectures
Affected versions < 2.6.10
Unaffected versions >= 2.6.10

Background

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.

Description

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.

Impact

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.

Workaround

There is no workaround available.

Resolution

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

References

Release date
December 13, 2003

Latest revision
December 07, 2003: 2

Severity
low

Exploitable
remote

Bugzilla entries