From security-advisories@freebsd.org Wed Sep 13 23:53:34 2000 From: FreeBSD Security Advisories To: BUGTRAQ@SECURITYFOCUS.COM Date: Wed, 13 Sep 2000 13:34:57 -0700 Subject: [BUGTRAQ] FreeBSD Ports Security Advisory: FreeBSD-SA-00:49.eject -----BEGIN PGP SIGNED MESSAGE----- ============================================================================= FreeBSD-SA-00:49 Security Advisory FreeBSD, Inc. Topic: eject port allows local root exploit Category: ports Module: eject Announced: 2000-09-13 Affects: Ports collection. Corrected: 2000-08-21 Credits: Discovered during internal auditing Vendor status: Contacted FreeBSD only: NO I. Background Eject is a utility for ejecting the media from a CD or optical disk drive. II. Problem Description The eject program is installed setuid root, and contains several exploitable buffers which can be overflowed by local users, yielding root privileges. The eject port is not installed by default, nor is it "part of FreeBSD" as such: it is part of the FreeBSD ports collection, which contains over 3800 third-party applications in a ready-to-install format. The ports collections shipped with FreeBSD 4.1 and 3.5.1 contain this problem since it was discovered after the releases. FreeBSD makes no claim about the security of these third-party applications, although an effort is underway to provide a security audit of the most security-critical ports. III. Impact Unprivileged users can obtain root privileges on the local system. If you have not chosen to install the eject port/package, then your system is not vulnerable to this problem. IV. Workaround Deinstall the eject port/package, if you have installed it, or limit the file permissions on the /usr/local/sbin/eject file (e.g. remove setuid permission, or limit it to a trusted group) V. Solution One of the following: 1) Upgrade your entire ports collection and rebuild the eject port. 2) Deinstall the old package and install a new package dated after the correction date, obtained from: ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-3-stable/sysutils/eject-1.4.tgz ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/sysutils/eject-1.4.tgz ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/alpha/packages-4-stable/sysutils/eject-1.4.tgz ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/sysutils/eject-1.4.tgz ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/alpha/packages-5-current/sysutils/eject-1.4.tgz NOTE: Be sure to check the file creation date on the package, because the version number of the software has not changed. 3) download a new port skeleton for the eject port from: http://www.freebsd.org/ports/ and use it to rebuild the port. 4) Use the portcheckout utility to automate option (3) above. The portcheckout port is available in /usr/ports/devel/portcheckout or the package can be obtained from: ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-3-stable/devel/portcheckout-2.0.tgz ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-4-stable/devel/portcheckout-2.0.tgz ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/alpha/packages-4-stable/devel/portcheckout-2.0.tgz ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-5-current/devel/portcheckout-2.0.tgz ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/alpha/packages-5-current/devel/portcheckout-2.0.tgz -----BEGIN PGP SIGNATURE----- Version: 2.6.2 iQCVAwUBOb/kCVUuHi5z0oilAQHfygP/d5QizD/ClKWD6MiKke2lspaI4sLTAKAh QpnrJv2nF7tgK5DV+7X8J9f4dtSLippccwCscsvF8GT8d6RleP3dN0KfDRou/W/d BVUgj2SfRNvsacbc8SyiaekT8ylne70WcYT93RrJ7vWbxTRXGEnOkbJD1rgDSksP RLywyeVfI+U= =G4Dr -----END PGP SIGNATURE-----