Re: NetBSD Security Advisory 2014-010: Multiple vulnerabilities in the compatibility layers

Tonnerre LOMBARD <[email protected]>
Newsgroups gmane.os.netbsd.current,gmane.os.netbsd.devel.security
Message-ID <[email protected]>
Salut,

Please ignore this advisory for now as it contains errors. It will be
published again after these errors have been addressed.

I am deeply sorry for my failure to provide you a good service on this
matter.

On Wed, Aug 27, 2014 at 09:36:07AM +0000, NetBSD Security Officer wrote:
> 		NetBSD Security Advisory 2014-010
> 		=================================
> 
> Topic:		Multiple vulnerabilities in the compatibility layers
> 
> 
> Version:	NetBSD-current:		source prior to Tue, Apr 15th 2014
> 		NetBSD 6.1 - 6.1.4:	affected
> 		NetBSD 6.0 - 6.0.5:	affected
> 		NetBSD 5.1 - 5.1.4:	affected
> 		NetBSD 5.2 - 5.2.2:	affected
> 
> Severity:	Local DoS
> 
> Fixed:		NetBSD-current:		Tue, Apr 15th 2014
> 		NetBSD-6-0 branch:	Mon, Apr 21th 2014
> 		NetBSD-6-1 branch:	Mon, Apr 21th 2014
> 		NetBSD-6 branch:	Mon, Apr 21th 2014
> 		NetBSD-5-2 branch:	Wed, May 14th 2014
> 		NetBSD-5-1 branch:	Wed, May 14th 2014
> 		NetBSD-5 branch:	Wed, May 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
> ========
> 
> Four compatibility layers are affected by several vulnerabilities:
> 
> 	1) FreeBSD compatibility: NULL pointer dereference
> 	2) NetBSD 32-bit compatibility: Zero-sized memory allocation
> 	3) Digital UNIX (formerly OSF/1) compatibility: Zero-sized
> 	   memory allocation
> 	4) Linux and Linux 32-bit compatibility: User-controllable
> 	   kernel memory array index.
> 
> Each of them allows a local user to crash the system.
> 
> 
> Technical Details
> =================
> 
> For more clarity the four layers affected will be referred to as
> COMPAT_xx, where xx is the emulated system.
> 
>  1) Due to a programming mistake in COMPAT_FREEBSD, a simple call to the
>     sched_getparam system call would cause the kernel to dereference a
>     NULL pointer, and thus to crash.
>  2) Due to a missing input validation check in COMPAT_NETBSD32's kevent
>     system call, a user could cause the kernel to perform a zero-sized
>     memory allocation, resulting in a crash.
>  3) Due to a missing input validation check in COMPAT_OSF1's
>     getdirentries system call, a user could cause the kernel to perform
>     a zero-sized memory allocation, resulting in a crash.
>  4) Due to missing input validation checks in the COMPAT_LINUX and
>     COMPAT_LINUX32 ELF binary loader, a specially-crafted binary could
>     control a kernel memory array index - address from which data is
>     read. Attempting to read at an unmapped memory page will cause the
>     kernel to crash.
> 
> 
> Solutions and Workarounds
> =========================
> 
> - Disable the compability modules
> ---------------------------------
> You can achieve this with the modunload(8) tool. Please read the
> appropriate manual page. For example, you can disable the Linux modules
> by moving the kernel object files out of the way. These are located in:
> 
> 	/stand/${MACHINE_ARCH}/${KERNEL_VERSION}/modules/compat_${NAME}/compat_${NAME}.kmod
> 
> And running the following command to unload them:
> 
> 	# modunload compat_${NAME}
> 
> The modules have dependencies, so you need to unload them in the proper
> order.
> 
> You can also disable these modules by rebuilding your kernel without the
> COMPAT_${NAME} options.
> 
> Note however that it is to be considered as a temporary workaround, and
> you are strongly advised to fix your system from source.
> 
> - Fix from source
> -----------------
> 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  netbsd-5  netbsd-5-2  netbsd-5-1
> ----  ----  --------  ----------  ----------  --------  ----------  ----------
> src/sys/compat/freebsd/freebsd_sched.c
>       1.20  1.19.40.1 1.19.56.1   1.19.46.1   1.19.10.1 1.19.48.1   1.19.24.1
> src/sys/compat/netbsd32/netbsd32_compat_50.c
>       1.24  1.20.6.1  1.20.14.1   1.20.12.1   XXXXXXXX  XXXXXXXXXX  XXXXXXXXXX
> src/sys/compat/netbsd32/netbsd32_event.c
>       1.11  1.9.10.2  1.9.24.1    1.9.16.1    XXXXXXXX  XXXXXXXXXX  XXXXXXXXXX
> src/sys/compat/osf1/osf1_file.c
>       1.42  %         %           %           XXXXXXXX  XXXXXXXXXX  XXXXXXXXXX
> src/sys/compat/linux/common/linux_exec_elf32.c
>       1.91  1.86.2.1  1.86.16.1   1.86.8.1    1.81.10.1 1.81.20.1   1.81.16.1
> 
> 
> To update from CVS, re-build, and re-install the kernel:
> 
> 	# cd src
> 	# cvs update -d -P -r VERSION sys/compat/freebsd/freebsd_sched.c
> 	# cvs update -d -P -r VERSION sys/compat/netbsd32/netbsd32_compat_50.c
> 	# cvs update -d -P -r VERSION sys/compat/netbsd32/netbsd32_event.c
> 	# cvs update -d -P -r VERSION sys/compat/osf1/osf1_file.c
> 	# cvs update -d -P -r VERSION sys/compat/linux/common/linux_exec_elf32.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, Christos Zoulas, Martin Husemann, Chuck
> Silvers, Enami Tsugutomo and Matt Thomas for finding, fixing and
> helping in fixing these issues.
> 
> 
> 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-010.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-010.txt,v 1.1 2014/08/27 00:26:00 tonnerre Exp $
> 

				Tonnerre
signature.asc (application/pgp-signature, 819 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBAgAGBQJT/cahAAoJEO1mMGan/TnWA2MP/09q/Pg+NjgFDOVuIm/DO5Oc
TTzX6bH+jK6j3kaB15KFUBL6dLlitUPGH8xKA8me99qJx+FyWgP4QrxHUFyQG4VM
YOlxKDjnMMos4kTDIaBwlom+nznZAMU6vkv7Jo6F28daRNEgWrS4B3GftAuoNb6g
NUK9mBXYUBEePpW7yCfCqaOST+6SDjdyJwLQuAFlYqo/KYeomgn0ltdNoYH4Pk0B
A+GKafiO6NMefm9fRTwWYXgiyu7gxA+ZQhzJy1IhHPkG1c8uI5kSx7/YH2CHfKMK
onatMqIrDZo6HNIuo6HHoqQopjg1I3LI5Kd46haHY2Ba2ELJFbl6IMd0y4wzGcVK
a7RIi9945WOnghB2+zwF5iEm82qgEs7w3OLnFFCYcSuA+I3c2OKyU9PJUQJZxq1y
IKjFFp1Xy1TGLkFNzBr67FOI5esanwXWCw4ghS7sXVpFJO0HfY0g9IUC1vO1aiYX
xuWXDUgBto2yy4mNwSGZ0qW6r2K1Szd/tDKwYMWnYAUfbbcwc3xxOQxGaihdC6+K
rKrTK6etaavPVUOF6lv99D8pi6NfRukrr/G/LOcjjpWoOeabSLt9X2+XFeeAga6F
IaMbWr4WUelsDlrpg8NbytZNAro+WRyFwUjTjG/SylemZWhGPmEDfZf8jsrceoyL
Mzlv0Bnxx8A5YSRka170
=j+ju
-----END PGP SIGNATURE-----
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.