FreeBSD Security Advisory FreeBSD-SA-06:16.smbfs



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

=============================================================================
FreeBSD-SA-06:16.smbfs Security Advisory
The FreeBSD Project

Topic: smbfs chroot escape

Category: core
Module: smbfs
Announced: 2006-05-31
Credits: Mark Moseley
Affects: All FreeBSD releases.
Corrected: 2006-05-31 22:31:21 UTC (RELENG_6, 6.1-STABLE)
2006-05-31 22:31:42 UTC (RELENG_6_1, 6.1-RELEASE-p1)
2006-05-31 22:32:04 UTC (RELENG_6_0, 6.0-RELEASE-p8)
2006-05-31 22:32:22 UTC (RELENG_5, 5.5-STABLE)
2006-05-31 22:32:49 UTC (RELENG_5_5, 5.5-RELEASE-p1)
2006-05-31 22:33:17 UTC (RELENG_5_4, 5.4-RELEASE-p15)
2006-05-31 22:33:41 UTC (RELENG_5_3, 5.3-RELEASE-p30)
2006-05-31 22:34:32 UTC (RELENG_4, 4.11-STABLE)
2006-05-31 22:34:53 UTC (RELENG_4_11, 4.11-RELEASE-p18)
2006-05-31 22:35:32 UTC (RELENG_4_10, 4.10-RELEASE-p24)
CVE Name: CVE-2006-2654

For general information regarding FreeBSD Security Advisories,
including descriptions of the fields above, security branches, and the
following sections, please visit
<URL:http://www.freebsd.org/security/>.

I. Background

smbfs is a network file-system used to access file servers using the
SMB/CIFS protocol. chroot(2) is system call designed to limit a
process's access to a particular subset of a file-system.

II. Problem Description

smbfs does not properly sanitize paths containing a backslash
character; in particular the directory name '..\' is interpreted as
the parent directory by the SMB/CIFS server, but smbfs handles it in
the same manner as any other directory.

III. Impact

When inside a chroot environment which resides on a smbfs mounted
file-system it is possible for an attacker to escape out of this
chroot to any other directory on the smbfs mounted file-system.

IV. Workaround

Mount the smbfs file-systems which need to be used with chroot on top,
in a way so the chroot directory is exactly on the mount point and not
a sub directory.

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_1, RELENG_6_0, RELENG_5_5, 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, 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.

# fetch http://security.FreeBSD.org/patches/SA-06:16/smbfs.patch
# fetch http://security.FreeBSD.org/patches/SA-06:16/smbfs.patch.asc

b) Apply the patch.

# cd /usr/src
# patch < /path/to/patch

c) Recompile your kernel as described in
<URL:http://www.freebsd.org/handbook/kernelconfig.html> and reboot the
system.

VI. Correction details

The following list contains the revision numbers of each file that was
corrected in FreeBSD.

Branch Revision
Path
- -------------------------------------------------------------------------
RELENG_4
src/sys/fs/smbfs/smbfs_vnops.c 1.2.2.11
RELENG_4_11
src/UPDATING 1.73.2.91.2.19
src/sys/conf/newvers.sh 1.44.2.39.2.22
src/sys/fs/smbfs/smbfs_vnops.c 1.2.2.10.4.1
RELENG_4_10
src/UPDATING 1.73.2.90.2.25
src/sys/conf/newvers.sh 1.44.2.34.2.26
src/sys/fs/smbfs/smbfs_vnops.c 1.2.2.10.2.1
RELENG_5
src/sys/fs/smbfs/smbfs_vnops.c 1.46.2.2
RELENG_5_5
src/UPDATING 1.342.2.35.2.1
src/sys/conf/newvers.sh 1.62.2.21.2.3
src/sys/fs/smbfs/smbfs_vnops.c 1.46.2.1.4.1
RELENG_5_4
src/UPDATING 1.342.2.24.2.24
src/sys/conf/newvers.sh 1.62.2.18.2.20
src/sys/fs/smbfs/smbfs_vnops.c 1.46.2.1.2.1
RELENG_5_3
src/UPDATING 1.342.2.13.2.33
src/sys/conf/newvers.sh 1.62.2.15.2.35
src/sys/fs/smbfs/smbfs_vnops.c 1.46.4.1
RELENG_6
src/sys/fs/smbfs/smbfs_vnops.c 1.61.2.2
RELENG_6_1
src/UPDATING 1.416.2.22.2.3
src/sys/conf/newvers.sh 1.69.2.11.2.3
src/sys/fs/smbfs/smbfs_vnops.c 1.61.2.1.2.1
RELENG_6_0
src/UPDATING 1.416.2.3.2.13
src/sys/conf/newvers.sh 1.69.2.8.2.9
src/sys/fs/smbfs/smbfs_vnops.c 1.61.4.1
- -------------------------------------------------------------------------

VII. References

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-2654

The following three references correspond to independent bugs which
affect the Linux kernel but have the same impact:
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-1863
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-1864
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=189434

The latest revision of this advisory is available at
http://security.FreeBSD.org/advisories/FreeBSD-SA-06:16.smbfs.asc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.3 (FreeBSD)

iD8DBQFEfhueFdaIBMps37IRAquuAJ0eCPAahUu19kdTjKpVHrrtQ9q16gCfZ5sC
xknjanFlpMxJAZ7iYSxBvcI=
=PvoL
-----END PGP SIGNATURE-----



Relevant Pages

  • FreeBSD Security Advisory FreeBSD-SA-06:16.smbfs
    ... For general information regarding FreeBSD Security Advisories, ... smbfs is a network file-system used to access file servers using the ... process's access to a particular subset of a file-system. ... When inside a chroot environment which resides on a smbfs mounted ...
    (FreeBSD-Security)
  • [FreeBSD-Announce] FreeBSD Security Advisory FreeBSD-SA-06:16.smbfs
    ... For general information regarding FreeBSD Security Advisories, ... smbfs is a network file-system used to access file servers using the ... process's access to a particular subset of a file-system. ... When inside a chroot environment which resides on a smbfs mounted ...
    (freebsd-announce)
  • Re: Init.c, making it chroot
    ... :> For this to work, i'd like to know at what point do i call chroot(), ... DVD-ROM with FreeBSD and DragonFly BSD on it. ... I decided to add the feature to DragonFly BSD's ... that a committer will pick it up. ...
    (freebsd-hackers)
  • Re: Init.c, making it chroot
    ... Oliver Fromme writes: ... DVD-ROM with FreeBSD and DragonFly BSD on it. ... I decided to add the feature to DragonFly BSD's ... The chroot() patch has been committed with r1.6. ...
    (freebsd-hackers)
  • smbfs on 5.4 broken?
    ... The upgrade from FreeBSD 5.3-RELEASE to FreeBSD 5.4-STABLE breaks ... something in smbfs. ... NBT Session Request ... Unspecified error 0x8F ...
    (freebsd-questions)