-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
NetBSD Security Advisory 2006-026
=================================
Topic: Multiple denial of service issues
Version: NetBSD-current: source prior to October 23, 2006
NetBSD 3.1: not affected
NetBSD 3.0.2: not affected
NetBSD 3.0.1: affected
NetBSD 3.0: affected
NetBSD 2.1: affected
NetBSD 2.0.*: affected
NetBSD 2.0: affected
Severity: Denial of service issues ranging from resource
leaks to
kernel panics.
Fixed: NetBSD-current: October 23, 2006
NetBSD-3-0 branch: October 24, 2006
NetBSD-3 branch: October 24, 2006
NetBSD-2-1 branch: October 29, 2006
NetBSD-2-0 branch: October 29, 2006
NetBSD-2 branch: October 29, 2006
Abstract
========
There are multiple denial of service issues that can result
in resource
leaks or kernel panics.
Technical Details
=================
* Dangling socket could exhaust local system resources
If a user supplies a bad 'name' or 'namelen' parameter to
accept(2) this
could leave a dangling socket. If bad parameters were
supplied and a
copyout(9) failed, the 'file' structure was cleaned up, but
not the
associated socket. This could leave sockets in the
CLOSE_WAIT state that
could never be closed.
* sendmsg(2) panic
On 64-bit architectures (e.g. amd64, sparc64, and alpha)
sendmsg(2)
can cause a kernel panic, due to insufficient checks of the
'msg_controllen'
parameter in sendit().
* mount_procfs panic (with -o linux)
Trying to read '/emul/linux/proc/0/stat' on a procfs mounted
with the 'linux'
option results in a kernel panic. The process in question
has to no parent
process, resulting in a NULL dereference due to insufficient
checks.
Solutions and Workarounds
=========================
* The sendmsg(2) panic only affects 64-bit systems.
* By default, procfs is not mounted with the 'linux' option,
however it is
often enabled when using Linux emulation.
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), and
KERNCONF with the name of your kernel configuration file.
To update from CVS, re-build, and re-install the kernel:
# cd src
# cvs update sys/kern/uipc_syscalls.c
sys/miscfs/procfs/procfs_linux.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
=========
The dangling socket issue was discovered and fixed by Sean
Boudreau.
The sendmsg(2) panic was discovered and reported by Ryo
Shimizu.
The mount_procfs panic was discovered and reported Nicolas
Joly.
Revision History
================
2006-11-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
ftp://ftp.NetBSD.org/pub/NetBSD/security/advisories/NetBSD-S
A2006-026.txt.asc
Information about NetBSD and NetBSD security can be found at
http://www.NetBSD.org/
and http://www.NetBSD.or
g/Security/.
Copyright 2006, The NetBSD Foundation, Inc. All Rights
Reserved.
Redistribution permitted only in full, unmodified form.
$NetBSD: NetBSD-SA2006-026.txt,v 1.3 2006/11/27 20:14:45
adrianp Exp $
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (NetBSD)
iQCVAwUBRWtHcj5Ru2/4N2IFAQI/BgP/QedMEaSiqw9Enjc4IO7fGPH5Y6+V
U640
MM3pdUqi7M2wY0lIG2pQgooCwJskt//Ei0mSGNnmUXowLa0aAmbtiyegptmv
5bKR
bzPUGAjDhL0/VPKp6SUFeSp+9cdjXytuisqsJJCXdcRZx1vfMnaV6CVbWExA
MWwF
YuX+hqClHCY=
=z6tu
-----END PGP SIGNATURE-----
|