LFTP is a sophisticated file transfer program for the FTP and HTTP protocols. 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. Updated packages are available from updates.redhat.com.
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 ===================================================================== Red Hat Security Advisory Synopsis: Low: lftp security and bug fix update Advisory ID: RHSA-2009:1278-02 Product: Red Hat Enterprise Linux Advisory URL: https://rhn.redhat.com/errata/RHSA-2009-1278.html Issue date: 2009-09-02 CVE Names: CVE-2007-2348 ===================================================================== 1. Summary: An 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. 2. Relevant releases/architectures: Red Hat Enterprise Linux Desktop (v. 5 client) - i386, x86_64 Red Hat Enterprise Linux (v. 5 server) - i386, ia64, ppc, s390x, x86_64 3. Description: 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. (CVE-2007-2348) 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. (BZ#434294) * 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. (BZ#308721) All LFTP users are advised to upgrade to this updated package, which resolves these issues. 4. Solution: Before applying this update, make sure that all previously-released errata relevant to your system have been applied. This update is available via Red Hat Network. Details on how to use the Red Hat Network to apply this update are available at http://kbase.redhat.com/faq/docs/DOC-11259 5. Bugs fixed (http://bugzilla.redhat.com/): 236238 - CVE-2007-2348 lftp mirror --script does not escape names and targets of symbolic links 239334 - lftp affected by problems described in CVE-2007-2348 308721 - bump lftp to current version 3.7.11 422881 - Using lftp with -c options causes hangs 434294 - lftp corrupts data when using (m)put's -c option on sftp transport 461922 - [RHEL 5] lftp 'help mirror' does not display all options defined in manpage. 6. Package List: Red Hat Enterprise Linux Desktop (v. 5 client): Source: ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Client/en/os/SRPMS/lftp-3.7.11-4.el5.src.rpm i386: lftp-3.7.11-4.el5.i386.rpm lftp-debuginfo-3.7.11-4.el5.i386.rpm x86_64: lftp-3.7.11-4.el5.x86_64.rpm lftp-debuginfo-3.7.11-4.el5.x86_64.rpm Red Hat Enterprise Linux (v. 5 server): Source: ftp://ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/lftp-3.7.11-4.el5.src.rpm i386: lftp-3.7.11-4.el5.i386.rpm lftp-debuginfo-3.7.11-4.el5.i386.rpm ia64: lftp-3.7.11-4.el5.ia64.rpm lftp-debuginfo-3.7.11-4.el5.ia64.rpm ppc: lftp-3.7.11-4.el5.ppc.rpm lftp-debuginfo-3.7.11-4.el5.ppc.rpm s390x: lftp-3.7.11-4.el5.s390x.rpm lftp-debuginfo-3.7.11-4.el5.s390x.rpm x86_64: lftp-3.7.11-4.el5.x86_64.rpm lftp-debuginfo-3.7.11-4.el5.x86_64.rpm These packages are GPG signed by Red Hat for security. Our key and details on how to verify the signature are available from https://www.redhat.com/security/team/key/#package 7. References: http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-2348 http://www.redhat.com/security/updates/classification/#low 8. Contact: The Red Hat security contact is <email@example.com>. More contact details at https://www.redhat.com/security/team/contact/ Copyright 2009 Red Hat, Inc. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.4 (GNU/Linux) iD8DBQFKniHxXlSAg2UNWIIRAlzgAKCE1NU6vFwhr4Z5HyKgmwTmmFQo8ACfULfB U6hHfR9R2/d056QXyHwgWsk= =Trc4 -----END PGP SIGNATURE-----