From security-advisories@freebsd.org Sat Jan 14 19:09:30 2006 From: FreeBSD Security Advisories To: Bugtraq Date: Wed, 11 Jan 2006 08:19:10 GMT Subject: FreeBSD Security Advisory FreeBSD-SA-06:02.ee -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 ============================================================================= FreeBSD-SA-06:02.ee Security Advisory The FreeBSD Project Topic: ee temporary file privilege escalation Category: core Module: ee Announced: 2006-01-11 Credits: Christian S.J. Peron Affects: All FreeBSD versions Corrected: 2006-01-11 08:02:16 UTC (RELENG_6, 6.0-STABLE) 2006-01-11 08:03:18 UTC (RELENG_6_0, 6.0-RELEASE-p2) 2006-01-11 08:03:55 UTC (RELENG_5, 5.4-STABLE) 2006-01-11 08:04:33 UTC (RELENG_5_4, 5.4-RELEASE-p9) 2006-01-11 08:05:54 UTC (RELENG_5_3, 5.3-RELEASE-p24) 2006-01-11 08:06:47 UTC (RELENG_4, 4.11-STABLE) 2006-01-11 08:07:18 UTC (RELENG_4_11, 4.11-RELEASE-p14) 2006-01-11 08:08:08 UTC (RELENG_4_10, 4.10-RELEASE-p20) CVE Name: CVE-2006-0055 For general information regarding FreeBSD Security Advisories, including descriptions of the fields above, security branches, and the following sections, please visit . I. Background The ee utility is a simple screen oriented text editor. This editor is popular with a lot of users due to its ease of use. II. Problem Description The ispell_op function used by ee(1) while executing spell check operations employs an insecure method of temporary file generation. This method produces predictable file names based on the process ID and fails to confirm which path will be over written with the user. It should be noted that ispell does not have to be installed in order for this to be exploited. The option simply needs to be selected. III. Impact These predictable temporary file names are problematic because they allow an attacker to take advantage of a race condition in order to execute a symlink attack, which could allow them to overwrite files on the system in the context of the user running the ee(1) editor. IV. Workaround Instead of invoking ispell through ee(1), invoke it directly. V. Solution Perform one of the following: 1) Upgrade your vulnerable system to 4-STABLE, 5-STABLE, or 6-STABLE, or to the RELENG_6_0, RELENG_5_4, RELENG_5_3, RELENG_4_11, or RELENG_4_10 security branch dated after the correction date. 2) To patch your present system: The following patches have been verified to apply to FreeBSD 4.10, 4.11, 5.3, 5.4, and 6.0 systems. a) Download the relevant patch from the location below, and verify the detached PGP signature using your PGP utility. # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-06:02/ee.patch # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-06:02/ee.patch.asc b) Execute the following commands as root: # cd /usr/src # patch < /path/to/patch # cd /usr/src/usr.bin/ee # make obj && make depend && make && make install VI. Correction details The following list contains the revision numbers of each file that was corrected in FreeBSD. Branch Revision Path - ------------------------------------------------------------------------- RELENG_4 usr.bin/ee/ee.c 1.16.2.9 RELENG_4_11 src/UPDATING 1.73.2.91.2.15 src/sys/conf/newvers.sh 1.44.2.39.2.18 usr.bin/ee/ee.c 1.16.2.7.6.1 RELENG_4_10 src/UPDATING 1.73.2.90.2.21 src/sys/conf/newvers.sh 1.44.2.34.2.22 usr.bin/ee/ee.c 1.16.2.7.4.1 RELENG_5 usr.bin/ee/ee.c 1.31.4.2 RELENG_5_4 src/UPDATING 1.342.2.24.2.18 src/sys/conf/newvers.sh 1.62.2.18.2.14 usr.bin/ee/ee.c 1.31.4.1.2.1 RELENG_5_3 src/UPDATING 1.342.2.13.2.27 src/sys/conf/newvers.sh 1.62.2.15.2.29 usr.bin/ee/ee.c 1.31.6.1 RELENG_6 usr.bin/ee/ee.c 1.32.2.1 RELENG_6_0 src/UPDATING 1.416.2.3.2.7 src/sys/conf/newvers.sh 1.69.2.8.2.3 usr.bin/ee/ee.c 1.32.4.1 - ------------------------------------------------------------------------- VII. References http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-0055 The latest revision of this advisory is available at ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-06:02.ee.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (FreeBSD) iD8DBQFDxL4YFdaIBMps37IRAlL2AJ4x+2WoVU3OJMEab2ch6sbBRaLoogCglFSE n4bkyDA2e6afV7tG4ja8foA= =42lw -----END PGP SIGNATURE-----