Subject: NetBSD Security Advisory 1999-007
To: None <netbsd-announce@netbsd.org>
From: matthew green <mrg@eterna.com.au>
List: current-users
Date: 03/18/1999 21:27:39
-----BEGIN PGP SIGNED MESSAGE-----

                 NetBSD Security Advisory 1999-007
                 =================================

Topic:		noexec mount flag is not properly handled by non-root mount
Version:	NetBSD 1.3.3 and prior; NetBSD-current until 19990318
Severity:	Local users can execute binaries they're not allowed to


Abstract
========

On a system where all partitions writable by regular users are mounted with
the `noexec' option, a regular user should not be able to execute a binary
which was not put on the system by the administrator.  Insufficient checks
in the mount system call may allow a regular user to mount a device,
remote host or local directory without the `noexec' option, allowing them
to execute arbitrary binaries.


Technical Details
=================

The mount syscall does not require root privileges, it only requires that
the user has read access to the target and is owner of the mount point.
For such mounts, the `nosuid' and `nodev' flags, which disable set-id
executables and device special files respectively, are automatically handled
by the mount system call, but not the `noexec' flag, which disables the
ability to execute binaries on this partition.  This allows a regular
user to perform a mount on a mount point he owns, and then execute binaries
from this mount point, even if the mount point was initially in a sub-tree
of the global filesystem mounted with the `noexec' option.  The easiest way
to bypass a `noexec' restriction is to use a nullfs mount, but a NFS mount,
or a mount from a readable block device can allow it as well.


Solutions and Workarounds
=========================

A patch is available for the NetBSD 1.3.3 which makes the mount system call
inherit the `noexec' flag from the mount point.  You may find this patch on
the NetBSD ftp server:

    ftp://ftp.NetBSD.ORG/pub/NetBSD/misc/security/patches/19990317-mount

NetBSD-current since 19990318 is not vulnerable.  Users of NetBSD-current
should upgrade to a source tree later than 19990318.


Thanks To
=========

Manuel Bouyer <bouyer@antioche.lip6.fr> for the solution.


Revision History
================

	1999/03/17 - initial version


More Information
================

Information about NetBSD and NetBSD security can be found at
http://www.NetBSD.ORG/ and http://www.NetBSD.ORG/Security/.


Copyright 1999, The NetBSD Foundation, Inc.  All Rights Reserved.

$NetBSD: NetBSD-SA1999-007.txt,v 1.1 1999/03/18 07:35:55 mrg Exp $

-----BEGIN PGP SIGNATURE-----
Version: 2.6.3ia
Charset: noconv

iQCVAwUBNvCxMz5Ru2/4N2IFAQFWkAQAlHWahlMRPWuribmek9zc/incJeGi8OWj
TxxZY2OPMPluEkmOT30xsGtpNZWKaDUv8g1q6X3KBnYsZFonS5RW/AhClSha5nCL
Kx4GiG/9KNK07a06F0G+WjxOrAXSSvh0UyxLbn6E7VJa7/g8h2Uk3osG5SNMkuvj
qTfmCofhnKI=
=TH30
-----END PGP SIGNATURE-----