SynopsisThe remote Scientific Linux host is missing a security update.
DescriptionCVE-2007-2348 lftp mirror --script does not escape names and targets of symbolic links
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.
- 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.
SolutionUpdate the affected lftp package.