From owner-freebsd-security Wed May 29 9:40:45 2002 Delivered-To: freebsd-security@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id D7BD437B40B; Wed, 29 May 2002 09:36:35 -0700 (PDT) Received: (from nectar@localhost) by freefall.freebsd.org (8.11.6/8.11.6) id g4TGaZX40801; Wed, 29 May 2002 09:36:35 -0700 (PDT) (envelope-from security-advisories@freebsd.org) Date: Wed, 29 May 2002 09:36:35 -0700 (PDT) Message-Id: <200205291636.g4TGaZX40801@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: nectar set sender to security-advisories@freebsd.org using -f From: FreeBSD Security Advisories To: FreeBSD Security Advisories Subject: FreeBSD Security Advisory FreeBSD-SA-02:27.rc Reply-To: security-advisories@freebsd.org Sender: owner-freebsd-security@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org -----BEGIN PGP SIGNED MESSAGE----- ============================================================================= FreeBSD-SA-02:27.rc Security Advisory The FreeBSD Project Topic: rc uses file globbing dangerously Category: core Module: rc Announced: XXXX-XX-XX Credits: lumpy Affects: FreeBSD 4.4-RELEASE FreeBSD 4.5-RELEASE FreeBSD 4-STABLE prior to the correction date Corrected: 2002-05-09 17:39:01 UTC (RELENG_4) 2002-05-09 17:40:27 UTC (RELENG_4_5) 2002-05-09 17:41:05 UTC (RELENG_4_4) FreeBSD only: YES I. Background rc is the system startup script (/etc/rc). It is run when the FreeBSD is booted multi-user, and performs a multitude of tasks to bring the system up. One of these tasks is to remove lock files left by X Windows, as their existence could prevent one from restarting the X Windows server. II. Problem Description When removing X Windows lock files, rc uses the rm(1) command and shell globbing: rm -f /tmp/.X*-lock /tmp/.X11-unix/* Since /tmp is a world-writable directory, a user may create /tmp/.X11-unix as a symbolic link to an arbitrary directory. The next time that rc is run (i.e. the next time the system is booted), rc will then remove all of the files in that directory. III. Impact Users may remove the contents of arbitrary directories if the /tmp/.X11-unix directory does not already exist and the system can be enticed to reboot (or the user can wait until the next system maintenance window). IV. Workaround Find and remove or comment-out the following line in /etc/rc: rm -f /tmp/.X*-lock /tmp/.X11-unix/* The following command executed as root will do this: /bin/sh -c 'echo -e "/.X11-unix/s/^/#/\nw\nq\n" | /bin/ed -s /etc/rc' V. Solution 1) Upgrade your vulnerable system to 4.5-STABLE; or to either of the RELENG_4_5 (4.5-RELEASE-p6) or RELENG_4_4 (4.4-RELEASE-p13) security branches dated after the respective correction dates. 2) To patch your present system: 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-02:27/rc.patch # fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:27/rc.patch.asc b) Execute the following commands as root: # cd /usr/src # patch < /path/to/patch c) Install the new rc script: # cd /usr/src/etc # install -c -o root -g wheel -m 644 rc /etc/rc VI. Correction details The following list contains the revision numbers of each file that was corrected in FreeBSD. Path Revision Branch - ------------------------------------------------------------------------- src/etc/rc RELENG_4 1.212.2.50 RELENG_4_5 1.212.2.38.2.1 RELENG_4_4 1.212.2.34.2.1 - ------------------------------------------------------------------------- VII. References -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (FreeBSD) iQCVAwUBPPUCJFUuHi5z0oilAQFP6AQArXkMZig8qYFpb38y1oN5BsnqEHFzasTi pS8emo40Mx9ki4DPRiiLSfzukymVXkjVIcDjKju7qNAxugN4TbZG2AcqZITav0gF i+vdhUnNf5v2Lp8LwwxtsfNIj2aoikXTTwW9fjJFOmQpDOObNYaSg0bMI+13kcIq 4mTmQs507aI= =nn/w -----END PGP SIGNATURE----- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-security" in the body of the message