Users login

Create an account »

JOIN XATRIX

Users login

Home » Hacking News » FreeBSD-SA-02:09: fstatfs race condition may allow local DoS via procfs

FreeBSD-SA-02:09: fstatfs race condition may allow local DoS via procfs

by Nikola Strahija on February 6th, 2002 A race condition existed where a file could be removed between calling fstatfs() and the point where the file is accessed causing the file descriptor to become invalid. This may allow unprivileged local users to cause a kernel panic. Currently only the procfs filesystem is known to be vulnerable.


I. Background

fstatfs() is a function that retrieves filesystem statistics in the
kernel. procfs is the process filesystem, which presents a filesystem
interface to the system process table and associated data.

II. Problem Description

A race condition existed where a file could be removed between calling
fstatfs() and the point where the file is accessed causing the file
descriptor to become invalid. This may allow unprivileged local users
to cause a kernel panic. Currently only the procfs filesystem is
known to be vulnerable.

III. Impact

On vulnerable FreeBSD systems where procfs is mounted, unprivileged
local users may be able to cause a kernel panic.

IV. Workaround

Unmount all instances of the procfs filesystem using the umount(8)
command by performing the following as root:

# umount -f -a -t procfs

Disable the automatic mounting of all instances of procfs in
/etc/fstab, remove or comment out the line(s) of the following form:

proc /proc procfs rw 0 0

Note that unmounting procfs may have a negative impact on the
operation of the system: under older versions of FreeBSD it is
required for some aspects of the ps(1) command, and unmounting it may
also break use of userland inter-process debuggers such as gdb. Other
installed binaries including emulated Linux binaries may require access
to procfs for correct operation.

V. Solution

1) Upgrade your vulnerable FreeBSD system to 4.5-RELEASE or
4.5-STABLE, or the RELENG_4_5, RELENG_4_4, or RELENG_4_3 security
branches dated after their respective correction dates.

2) FreeBSD 4.x systems prior to the correction date:

The following patch has been verified to apply to all FreeBSD 4.x
releases dated prior to the correction date. This patch may or may
not apply to older, unsupported releases of FreeBSD.

Download the patch and the detached PGP signature from the following
locations, and verify the signature using your PGP utility.

# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:09/fstatfs.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:09/fstatfs.patch.asc

Execute the following commands as root:

# cd /usr/src
# patch -p
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (FreeBSD)
Comment: For info see http://www.gnupg.org


Newsletter signup

Signup to our monthly newsletter and stay in touch with IT news!

Free E-books

We've got ebooks! But they're not online. :( Please give us a few days to bring downloads back.

Contact

Have something to say or just wanna drop us a line? Please keep this in mind: to spam, we reply with spam.

Contact us »