RHEL 5 : lftp (RHSA-2009:1278)
Medium Nessus Plugin ID 40836
SynopsisThe remote Red Hat host is missing a security update.
DescriptionAn updated lftp package that fixes one security issue and various bugs is now available for Red Hat Enterprise Linux 5.
This update has been rated as having low security impact by the Red Hat Security Response Team.
LFTP is a sophisticated file transfer program for the FTP and HTTP protocols. Like bash, it has job control and uses the readline library for input. It has bookmarks, built-in mirroring, and can transfer several files in parallel. It is designed with reliability in mind.
It was discovered that lftp did not properly escape shell metacharacters when generating shell scripts using the 'mirror
--script' command. A mirroring script generated to download files from a malicious FTP server could allow an attacker controlling the FTP server to run an arbitrary command as the user running lftp.
This update also fixes the following bugs :
* when using the 'mirror' or 'get' commands with the '-c' option, lftp did not check for some specific conditions that could result in the program becoming unresponsive, hanging and the command not completing.
For example, when waiting for a directory listing, if lftp received a '226' message, denoting an empty directory, it previously ignored the message and kept waiting. With this update, these conditions are properly checked for and lftp no longer hangs when '-c' is used with 'mirror' or 'get'. (BZ#422881)
* when using the 'put', 'mput' or 'reput' commands over a Secure FTP (SFTP) connection, specifying the '-c' option sometimes resulted in corrupted files of incorrect size. With this update, using these commands over SFTP with the '-c' option works as expected, and transferred files are no longer corrupted in the transfer process.
* previously, LFTP linked to the OpenSSL library. OpenSSL's license is, however, incompatible with LFTP's GNU GPL license and LFTP does not include an exception allowing OpenSSL linking. With this update, LFTP links to the GnuTLS (GNU Transport Layer Security) library, which is released under the GNU LGPL license. Like OpenSSL, GnuTLS implements the SSL and TLS protocols, so functionality has not changed. (BZ#458777)
* running 'help mirror' from within lftp only presented a sub-set of the available options compared to the full list presented in the man page. With this update, running 'help mirror' in lftp presents the same list of mirror options as is available in the Commands section of the lftp man page. (BZ#461922)
* LFTP imports gnu-lib from upstream. Subsequent to gnu-lib switching from GNU GPLv2 to GNU GPLv3, the LFTP license was internally inconsistent, with LFTP licensed as GNU GPLv2 but portions of the package apparently licensed as GNU GPLv3 because of changes made by the gnu-lib import. With this update, LFTP itself switches to GNU GPLv3, resolving the inconsistency. (BZ#468858)
* when the 'ls' command was used within lftp to present a directory listing on a remote system connected to via HTTP, file names containing spaces were presented incorrectly. This update corrects this behavior. (BZ#504591)
* the default alias 'edit' did not define a default editor. If EDITOR was not set in advance by the system, lftp attempted to execute '~/.lftp/edit.tmp.$$' (which failed because the file is not set to executable). The edit alias also did not support tab-completion of file names and incorrectly interpreted file names containing spaces.
The updated package defines a default editor (vi) in the absence of a system-defined EDITOR. The edit alias now also supports tab-completion and handles file names containing spaces correctly for both downloading and uploading. (BZ#504594)
Note: This update upgrades LFTP from version 3.7.3 to upstream version 3.7.11, which incorporates a number of further bug fixes to those noted above. For details regarding these fixes, refer to the '/usr/share/doc/lftp-3.7.11/NEWS' file after installing this update.
All LFTP users are advised to upgrade to this updated package, which resolves these issues.
SolutionUpdate the affected lftp package.