-----BEGIN PGP SIGNED MESSAGE----- NetBSD Security Advisory 2000-005 ================================= Topic: Local "cpu-hog" denial of service Version: all versions prior to 2000/04/20 Severity: low; untrusted local user can hog CPU Abstract ======== Untrusted local processes can hog cpu and kernel memory by tricking the kernel into running exclusively on their behalf, denying other processes the CPU. Technical Details ================= 4.xBSD kernels are non-preemptive; processes running in user space can be preempted, but processes runnning in the kernel must yield the CPU voluntarily. Certain system calls could be convinced to run for an extended time in the kernel without yielding (e.g., reads from /dev/zero). In addition, the ktrace system-call tracing facility could use large amounts of kernel memory when tracing large I/O's The patches referenced by this advisory: - add a facility to allow a process to yield the cpu but remain runnable. - notice when a process has executed for an entire timeslice without yielding. - add several preemption points in common system routines. - reduce the total memory required by ktrace while tracing I/O (by breaking the data read into multiple chunks). Solutions and Workarounds ========================= For formal NetBSD releases, you should to download the appropriate source patch listed below, apply it to your kernel source tree using the patch(1) command. For NetBSD-current, you should update your source tree (with either sup or anonymous CVS). In both cases, you then need to rebuild, install the newly built kernel, and reboot. For more information on how to do this, see: http://www.netbsd.org/Documentation/kernel/#building_a_kernel For NetBSD 1.4, 1.4.1, and 1.4.2: A patch is available in ftp://ftp.NetBSD.ORG/pub/NetBSD/misc/security/patches/20000527-yield For NetBSD-current: NetBSD-current since 20000420 contains all the fixes, and is not vulnerable. Users of NetBSD-current should upgrade to a source tree dated 20000420 or later. Thanks To ========= Artur Grabowski for the report and initial patches. Jason Thorpe for writing the final fix. Bill Sommerfeld for backporting to 1.4.x Revision History ================ 20000527 initial draft of advisory. More Information ================ Information about NetBSD and NetBSD security can be found at http://www.NetBSD.ORG/ and http://www.NetBSD.ORG/Security/. Copyright 2000, The NetBSD Foundation, Inc. All Rights Reserved. $NetBSD: NetBSD-SA2000-005.txt,v 1.2 2000/05/28 03:25:08 sommerfeld Exp $ -----BEGIN PGP SIGNATURE----- Version: 2.6.3ia Charset: noconv iQCVAwUBOTG4LD5Ru2/4N2IFAQEeKAP8C+m/FuTQMJJWw+ipb4rF3Dh+ZJfIX7Sk 2RKtN3Dzmep6taw1q9rvrHjIgq1pv0W2559SHezKwPrvEmEZ0kZVD3ZCQzJbIKsn +WSvXYgongEJZBEaoZoqzk9+8WHYEluj2gMgPYBCViEURYVoAH4NYMkw9ytaRSoD 90/UJxIMBuw= =uq7X -----END PGP SIGNATURE-----