From owner-freebsd-announce@FreeBSD.ORG Thu Jan 11 15:54:15 2007 Return-Path: X-Original-To: freebsd-announce@freebsd.org Delivered-To: freebsd-announce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id A147D16A415 for ; Thu, 11 Jan 2007 15:54:15 +0000 (UTC) (envelope-from deb@freebsd.org) Received: from ns1.scsiguy.com (ns1.scsiguy.com [70.89.174.89]) by mx1.freebsd.org (Postfix) with ESMTP id 63F6B13C45A for ; Thu, 11 Jan 2007 15:54:15 +0000 (UTC) (envelope-from deb@freebsd.org) Received: from [192.168.16.103] (c-71-196-218-12.hsd1.co.comcast.net [71.196.218.12]) (authenticated bits=0) by ns1.scsiguy.com (8.13.8/8.13.8) with ESMTP id l0BFsLHC096513 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Thu, 11 Jan 2007 08:54:21 -0700 (MST) (envelope-from deb@freebsd.org) Message-ID: <45A65D28.4020009@freebsd.org> Date: Thu, 11 Jan 2007 08:52:08 -0700 From: Deb Goodkin User-Agent: Thunderbird 1.5.0.9 (Windows/20061207) MIME-Version: 1.0 To: freebsd-announce@freebsd.org Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Mailman-Approved-At: Thu, 11 Jan 2007 17:07:16 +0000 Subject: [FreeBSD-Announce] Foundation Accepting Travel Grant Applications for AsiaBSDCon X-BeenThere: freebsd-announce@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Project Announcements \[moderated\]" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jan 2007 15:54:15 -0000 Calling all FreeBSD developers needing assistance with travel expenses to AsiaBSDCon 2007. The Foundation will be providing a limited number of travel grants to individuals requesting assistance. Please fill out and submit the Travel Grant Request Form at www.freebsdfoundation.org/documents/ by January 21, to apply for this grant. Though we would like to support everyone who applies, priority will be given to FreeBSD developers speaking at the conference. Due to constrained resources, we would appreciate if developers could look to their employers first for sponsorship or cost-splitting. Also, to be considered for the grant, you must provide a detailed justification for attending this conference in the application. Please describe, not only your purpose for attending, but how the FreeBSD community will benefit by you attending this conference. Please note, the deadline for submitting Travel Grant Request forms is January 21, 2007. Applications will not be accepted after this date. Thank You, The FreeBSD Foundation From owner-freebsd-announce@FreeBSD.ORG Thu Jan 11 18:41:32 2007 Return-Path: X-Original-To: freebsd-announce@freebsd.org Delivered-To: freebsd-announce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E5BF816A47B; Thu, 11 Jan 2007 18:41:32 +0000 (UTC) (envelope-from security-advisories@freebsd.org) Received: from freefall.freebsd.org (freefall.freebsd.org [69.147.83.40]) by mx1.freebsd.org (Postfix) with ESMTP id D2D4013C467; Thu, 11 Jan 2007 18:41:32 +0000 (UTC) (envelope-from security-advisories@freebsd.org) Received: from freefall.freebsd.org (simon@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id l0BIfW9D015224; Thu, 11 Jan 2007 18:41:32 GMT (envelope-from security-advisories@freebsd.org) Received: (from simon@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id l0BIfWap015222; Thu, 11 Jan 2007 18:41:32 GMT (envelope-from security-advisories@freebsd.org) Date: Thu, 11 Jan 2007 18:41:32 GMT Message-Id: <200701111841.l0BIfWap015222@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: simon set sender to security-advisories@freebsd.org using -f From: FreeBSD Security Advisories To: FreeBSD Security Advisories Precedence: bulk Cc: Subject: [FreeBSD-Announce] FreeBSD Security Advisory FreeBSD-SA-07:01.jail X-BeenThere: freebsd-announce@freebsd.org X-Mailman-Version: 2.1.5 Reply-To: freebsd-security@freebsd.org List-Id: "Project Announcements \[moderated\]" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 11 Jan 2007 18:41:33 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 ============================================================================= FreeBSD-SA-07:01.jail Security Advisory The FreeBSD Project Topic: Jail rc.d script privilege escalation Category: core Module: etc_rc.d Announced: 2007-01-11 Credits: Dirk Engling Affects: All FreeBSD releases since 5.3 Corrected: 2007-01-11 18:16:58 UTC (RELENG_6, 6.2-STABLE) 2007-01-11 18:17:24 UTC (RELENG_6_2, 6.2-RELEASE) 2007-01-11 18:18:08 UTC (RELENG_6_1, 6.1-RELEASE-p12) 2007-01-11 18:18:35 UTC (RELENG_6_0, 6.0-RELEASE-p17) 2007-01-11 18:18:57 UTC (RELENG_5, 5.5-STABLE) 2007-01-11 18:19:33 UTC (RELENG_5_5, 5.5-RELEASE-p10) CVE Name: CVE-2007-0166 For general information regarding FreeBSD Security Advisories, including descriptions of the fields above, security branches, and the following sections, please visit . I. Background The jail(2) system call allows a system administrator to lock a process and all of its descendants inside an environment with a very limited ability to affect the system outside that environment, even for processes with superuser privileges. It is an extension of, but far more powerful than, the traditional UNIX chroot(2) system call. The host's jail rc.d(8) script can be used to start and stop jails automatically on system boot/shutdown. II. Problem Description In multiple situations the host's jail rc.d(8) script does not check if a path inside the jail file system structure is a symbolic link before using the path. In particular this is the case when writing the output from the jail start-up to /var/log/console.log and when mounting and unmounting file systems inside the jail directory structure. III. Impact Due to the lack of handling of potential symbolic links the host's jail rc.d(8) script is vulnerable to "symlink attacks". By replacing /var/log/console.log inside the jail with a symbolic link it is possible for the superuser (root) inside the jail to overwrite files on the host system outside the jail with arbitrary content. This in turn can be used to execute arbitrary commands with non-jailed superuser privileges. Similarly, by changing directory mount points inside the jail file system structure into symbolic links, it may be possible for a jailed attacker to mount file systems which were meant to be mounted inside the jail at arbitrary points in the host file system structure, or to unmount arbitrary file systems on the host system. NOTE WELL: The above vulnerabilities occur only when a jail is being started or stopped using the host's jail rc.d(8) script; once started (and until stopped), running jails cannot exploit this. IV. Workaround If the sysctl(8) variable security.jail.chflags_allowed is set to 0 (the default), setting the "sunlnk" system flag on /var, /var/log, /var/log/console.log, and all file system mount points and their parent directories inside the jail(s) will ensure that the console log file and mount points are not replaced by symbolic links. If this is done while jails are running, the administrator must check that an attacker has not replaced any directories with symlinks after setting the "sunlnk" flag. V. Solution NOTE WELL: The solution described changes the default location of the "console.log" for jails from /var/log/console.log inside each jail to /var/log/jail_${jail_name}_console.log on host system. If this is a problem, it may be possible to create a hard link from the new position of the console log file to a location inside the jail. A new rc.conf(5) variable, jail_${jail_name}_consolelog, can be used to change the location of console.log files on a per-jail basis. In addition, the solution described below does not fully secure jail configurations where two jails have overlapping directory trees and a file system is mounted inside the overlap. Overlapping directory trees can occur when jails share the same root directory; when a jail has a root directory which is a subdirectory of another jail's root directory; or when a part of the file system space of one jail is mounted inside the file system space of another jail, e.g., using nullfs or unionfs. To handle overlapping jails safely the administrator must set the sysctl(8) variable security.jail.chflags_allowed to 0 (the default) and manually set the "sunlnk" file/directory flag on all mount points and all parent directories of mount points. If this is done while jails are running, the adminstrator must check that an attacker has not replaced any directories with symlinks after setting the "sunlnk" flag. Perform one of the following: 1) Upgrade your vulnerable system to 5-STABLE, or 6-STABLE, or to the RELENG_6_1, RELENG_6_0, or RELENG_5_5 security branch dated after the correction date. 2) To patch your present system: The following patches have been verified to apply to FreeBSD 5.5, 6.0, and 6.1 systems. a) Download the relevant patch from the location below, and verify the detached PGP signature using your PGP utility. [FreeBSD 5.5] # fetch http://security.FreeBSD.org/patches/SA-07:01/jail5.patch # fetch http://security.FreeBSD.org/patches/SA-07:01/jail5.patch.asc [FreeBSD 6.0] # fetch http://security.FreeBSD.org/patches/SA-07:01/jail60.patch # fetch http://security.FreeBSD.org/patches/SA-07:01/jail60.patch.asc [FreeBSD 6.1] # fetch http://security.FreeBSD.org/patches/SA-07:01/jail61.patch # fetch http://security.FreeBSD.org/patches/SA-07:01/jail61.patch.asc b) Execute the following commands as root: # cd /usr/src # patch < /path/to/patch # install -o root -g wheel -m 555 etc/rc.d/jail /etc/rc.d VI. Correction details The following list contains the revision numbers of each file that was corrected in FreeBSD. Branch Revision Path - ------------------------------------------------------------------------- RELENG_5 src/etc/rc.d/jail 1.15.2.6 RELENG_5_5 src/UPDATING 1.342.2.35.2.10 src/sys/conf/newvers.sh 1.62.2.21.2.12 src/etc/rc.d/jail 1.15.2.5.2.1 RELENG_6 src/etc/rc.d/jail 1.23.2.9 RELENG_6_2 src/UPDATING 1.416.2.29.2.2 src/etc/rc.d/jail 1.23.2.7.2.1 RELENG_6_1 src/UPDATING 1.416.2.22.2.14 src/sys/conf/newvers.sh 1.69.2.11.2.14 src/etc/rc.d/jail 1.23.2.3.2.3 RELENG_6_0 src/UPDATING 1.416.2.3.2.22 src/sys/conf/newvers.sh 1.69.2.8.2.18 src/etc/rc.d/jail 1.23.2.2.2.1 - ------------------------------------------------------------------------- VII. References http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-0166 The latest revision of this advisory is available at http://security.FreeBSD.org/advisories/FreeBSD-SA-07:01.jail.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (FreeBSD) iD8DBQFFpoQEFdaIBMps37IRAqtSAJoDNEO9woA7ZF1hbCuhbjFzhnXSfgCgjRH/ bapC5/eS7eAipiguG2DFdls= =a8el -----END PGP SIGNATURE-----