-----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-SA2006-026.txt.asc Information about NetBSD and NetBSD security can be found at http://www.NetBSD.org/ and http://www.NetBSD.org/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+VU640 MM3pdUqi7M2wY0lIG2pQgooCwJskt//Ei0mSGNnmUXowLa0aAmbtiyegptmv5bKR bzPUGAjDhL0/VPKp6SUFeSp+9cdjXytuisqsJJCXdcRZx1vfMnaV6CVbWExAMWwF YuX+hqClHCY= =z6tu -----END PGP SIGNATURE-----