Home    |    View Topics    |    Search    |    Contact Us    |   



Category:   OS (UNIX)  >   NetBSD Vendors:   NetBSD
NetBSD execve Kernel Bugs Let Local Users Crash the System
SecurityTracker Alert ID:  1030764
SecurityTracker URL:
CVE Reference:   GENERIC-MAP-NOMATCH   (Links to External Site)
Date:  Aug 27 2014
Impact:   Denial of service via local system
Fix Available:  Yes  Vendor Confirmed:  Yes  
Version(s): 6.0 - 6.0.4, 6.1 - 6.1.3
Description:   Two vulnerabilities were reported in NetBSD. A local user can cause denial of service conditions.

A local user can load a specially crafted ELF binary to trigger a kernel memory leak and consume excessive kernel memory, leading to a kernel panic.

A local user can run a specially crafted binary or script to trigger a use-after-free memory error and cause the system to crash.

Maxime Villard reported these vulnerabilities.

Impact:   A local user can cause the target system to crash.
Solution:   The vendor has issued a fix.

The vendor's advisory is available at:

Vendor URL: (Links to External Site)
Cause:   Access control error, Resource error

Message History:   None.

 Source Message Contents

Subject:  NetBSD Security Advisory 2014-009: Multiple vulnerabilities in the execve system call

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.


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
- ----    ----            --------        ----------      ----------
        1.403           1.339.2.9       1.339.   1.339.

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
	# ./ 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:

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

Information about NetBSD and NetBSD security can be found at and .

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 $

Version: GnuPG v1


Go to the Top of This SecurityTracker Archive Page

Home   |    View Topics   |    Search   |    Contact Us

This web site uses cookies for web analytics. Learn More

Copyright 2021, LLC