Operating System:

[NetBSD]

Published:

29 August 2014

Protect yourself against future threats.

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

===========================================================================
             AUSCERT External Security Bulletin Redistribution

                               ESB-2014.1468
            Multiple vulnerabilities in the execve system call
                              29 August 2014

===========================================================================

        AusCERT Security Bulletin Summary
        ---------------------------------

Product:           kernel
Publisher:         NetBSD
Operating System:  NetBSD
Impact/Access:     Denial of Service -- Existing Account
Resolution:        Patch/Upgrade

Original Bulletin: 
   http://ftp.NetBSD.org/pub/NetBSD/security/advisories/NetBSD-SA2014-009.txt.asc

- --------------------------BEGIN INCLUDED TEXT--------------------

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

		NetBSD Security Advisory 2014-009
		=================================

Topic:		Multiple vulnerabilities in the execve system call


Version:	NetBSD-current:		source prior to Fri, Feb 14th 2014
		NetBSD 6.1 - 6.1.3:	affected
		NetBSD 6.1.4:		not affected
		NetBSD 6.0 - 6.0.4:	affected
		NetBSD 6.0.5:		not affected
		NetBSD 5.1 - 5.1.4:	not affected
		NetBSD 5.2 - 5.2.2:	not affected

Severity:	Local DoS

Fixed:		NetBSD-current:		Fri, Feb 14th 2014
		NetBSD-6-0 branch:	Fri, Feb 14th 2014
		NetBSD-6-1 branch:	Fri, Feb 14th 2014
		NetBSD-6 branch:	Fri, Feb 14th 2014

Teeny versions released later than the fix date will contain the fix.

Please note that NetBSD releases prior to 5.1 are no longer supported.
It is recommended that all users upgrade to a supported release.


Abstract
========

The execve system call is affected by two vulnerabilities:
 1) A memory leak in the kernel could cause a local (un)privileged user
to use up kernel memory via a bogus ELF binary, and thus to freeze - or
eventually panic - the system.
 2) A bug in the kernel could lead to a use-after-free condition when
loading a binary or a script, which would allow a local (un)privileged
user to crash the system.


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

 1) When trying to execute an ELF binary, the kernel looks up the
corresponding "interpreter" (in case of native dynamic ELF binaries: the
dynamic linker ld.elf_so). If this interpreter cannot be accessed
appropriately, or if it is bogus, a structure allocated to hold special
information on this interpreter was not freed.
    If a standard toolchain is installed, a local user can easily create
such broken binaries by passing the -dynamic-linker switch to the linker.

 2) When executing a binary via execve(), the kernel computes the new
user stack size, and returns an error if this size exceeds the maximum
architecture-defined stack size or the maximum stack size allowed by the
calling process through rlimit. However, the variable in charge of hold-
ing the error code returned was not properly initialised, causing the
kernel to keep setting up the new process environment and use data that
was already freed.
    Both the new stack size and the rlimit stack size are approximately
user-controllable, which makes it easy to trigger from a local user.


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

For all NetBSD versions, you need to obtain fixed kernel sources,
rebuild and install the new kernel, and reboot the system.
                                      
The fixed source may be obtained from the NetBSD CVS repository.        
The following instructions briefly summarise how to upgrade your        
kernel.  In these instructions, replace:

  ARCH     with your architecture (from uname -m),               
  KERNCONF with the name of your kernel configuration file and  
  VERSION  with the file version below

File versions containing the fixes:

FILE    HEAD            netbsd-6        netbsd-6-1      netbsd-6-0
- - ----    ----            --------        ----------      ----------
sys/kern/exec_elf.c
        1.55            1.37.2.2        1.37.2.1.6.1    1.37.2.1.4.1
sys/kern/kern_exec.c
        1.403           1.339.2.9       1.339.2.6.2.2   1.339.2.5.4.3

To update from CVS, re-build, and re-install the kernel:

	# cd src
	# cvs update -d -P -r VERSION sys/kern/exec_elf.c
	# cvs update -d -P -r VERSION sys/kern/kern_exec.c
	# ./build.sh kernel=KERNCONF
	# mv /netbsd /netbsd.old
	# cp sys/arch/ARCH/compile/obj/KERNCONF/netbsd /netbsd 
	# shutdown -r now

For more information on how to do this, see:    

   http://www.NetBSD.org/guide/en/chap-kernel.html


Thanks To
=========

Thanks to Maxime Villard, who found the issues and provided fixes.


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

	2014-08-27	Initial release


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

Advisories may be updated as new information becomes available.
The most recent version of this advisory (PGP signed) can be found at 
  http://ftp.NetBSD.org/pub/NetBSD/security/advisories/NetBSD-SA2014-009.txt.asc

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


Copyright 2014, The NetBSD Foundation, Inc.  All Rights Reserved.
Redistribution permitted only in full, unmodified form.

$NetBSD: NetBSD-SA2014-009.txt,v 1.1 2014/08/27 00:19:19 tonnerre Exp $

- -----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBAgAGBQJT/SReAAoJEAZJc6xMSnBugpsP/1YehXy/YfxDcErEWQlAHHp/
We1okuTaLhJQMw1gAHIAFoc1d9dRNqN9dmAsQ9FW9qUvpQ2MxWWBvTdmlLjBh990
mCOMSsEu92h0P4nCyziOAyIqf67Eq1X798ovqDyXIvxvMlWsx7RFthM5hGB9ZJAR
HpBd/+5OUmOEqQN7UsrmBIUHU8ErDGb/43wC9Q7cuUMCThYZHEbO+T0GyWni1/K7
SM8RRu9XZk5kneC6YHHThvu1zC64Z+BT38fCGOqL0vY5jexNFoaaCTq4P2uJFHZN
D5Vh5br/eG6fqaH33qHOLQ6om1opuVYaXTIfP8lbWEKOFMEB4eN0oKUi1+SIu+N7
7EIpHjCdUqx0pGmAwGZci8LqmZElDniCjlE80C4HM1sSxC/lz/ahMEymNEJ23Cyt
/iVF9nSEYDsXDcFkYop/VNe6nit8Ky72INLXZjmdHLkg5v5F8A9sheTb0CQS7RdR
JUVgtPgnDIXgeJXW2YFgRhcZ+d9I/9+iyVI5PKvlo93bbdjiMt6w01Xhqz4IGf2u
cIO7uunECz5YO6CIt9JbGS0AFoGWAqCUSSgoDvnGhtb8zKdoMxaxCIfOScSu8HPq
v7Cvr0bj2zEDYopv3JwO+kXYJkHnos1uB6OqPG9YXrv5jPNotpctZNJZui2ojDaU
zddVu+YzpcxVH1VjW2vi
=0R38
- -----END PGP SIGNATURE-----

- --------------------------END INCLUDED TEXT--------------------

You have received this e-mail bulletin as a result of your organisation's
registration with AusCERT. The mailing list you are subscribed to is
maintained within your organisation, so if you do not wish to continue
receiving these bulletins you should contact your local IT manager. If
you do not know who that is, please send an email to auscert@auscert.org.au
and we will forward your request to the appropriate person.

NOTE: Third Party Rights
This security bulletin is provided as a service to AusCERT's members.  As
AusCERT did not write the document quoted above, AusCERT has had no control
over its content. The decision to follow or act on information or advice
contained in this security bulletin is the responsibility of each user or
organisation, and should be considered in accordance with your organisation's
site policies and procedures. AusCERT takes no responsibility for consequences
which may arise from following or acting on information or advice contained in
this security bulletin.

NOTE: This is only the original release of the security bulletin.  It may
not be updated when updates to the original are made.  If downloading at
a later date, it is recommended that the bulletin is retrieved directly
from the author's website to ensure that the information is still current.

Contact information for the authors of the original document is included
in the Security Bulletin above.  If you have any questions or need further
information, please contact them directly.

Previous advisories and external security bulletins can be retrieved from:

        http://www.auscert.org.au/render.html?cid=1980

===========================================================================
Australian Computer Emergency Response Team
The University of Queensland
Brisbane
Qld 4072

Internet Email: auscert@auscert.org.au
Facsimile:      (07) 3365 7031
Telephone:      (07) 3365 4417 (International: +61 7 3365 4417)
                AusCERT personnel answer during Queensland business hours
                which are GMT+10:00 (AEST).
                On call after hours for member emergencies only.
===========================================================================
-----BEGIN PGP SIGNATURE-----
Comment: http://www.auscert.org.au/render.html?it=1967

iQIVAwUBU//SAhLndAQH1ShLAQIh7w//dqgdbb5LmhRYlxisCDaPvX7GEV0H9Uk9
mhpPBv8+rn9xuxFCL+aWP44dqG7PBXsxDpuJVEpdORXJxrJrrYM4sXQ9gwblwga6
TWbs8gllxEKTMe+Ma7F/abNoeKQWRXZPG0OlotcP+2ZWSqw9ixPKTcvpv0h15oKZ
soDrVnXe1j+Ge0FIptjMW88ws7+iri3K0uKtfsPkptcVoi11uYJdp3NVyvJbVlDu
2J1p+vaWt6BhWLtYoSt7KmBqswSkD8JduGd/y4E+v13cvuis+/U9V/Xl8yAUfjXC
d4N8TbDpj51U8l7WVAGk2AHU1oLXAffrhhE86BLgLBnmyF6gTvRqhFRmiBoAwywr
xI5ColR6HU9qkwAChu4EW/Zjo36ZUGEhieQu0QFwPUWHmN3e6/gSeqYKkuEnkPl5
3Uu+n70qcLq14K/qvNf1RLUSwdGjn7OAwtMH2sJ2MSDzl7JZYDR8vTn4ivlHrD2I
/Mh9r9KGd3p8hnLnp03IpcNgZ/Oph14BpoaFMf/Lm4HBJst7cYdR9ftT6Y/CsPBI
8OntYi5cWVh0ntIPoHoMFb2ZgH3j8KftXNDBNJgPBKc5cBWh4LT6n7Fb5pK5YKaK
Kcb6BoTpkupnIMP933AhvZmhG4uVD5uySgZUgcuoKUweTt1W5vh+Berw/eHosTDO
TxF63LQSGT0=
=n0Pz
-----END PGP SIGNATURE-----