NetBSD Security Advisory 2017-001: Memory leak in the connect system call
21 January, 2017 by security-officer@netbsd.org | netbsd
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 NetBSD Security Advisory 2017-001 ================================= Topic: Memory leak in the connect system call Version: NetBSD-current: source prior to Sun, Oct 31st 2016 NetBSD 7.0 - 7.0.2: affected NetBSD 6.1 - 6.1.4: affected NetBSD 6.0 - 6.0.5: affected Severity: Local DoS Fixed: NetBSD-current: Sun, Oct 31st 2016 NetBSD-7-0 branch: Tue, Nov 1st 2016 NetBSD-7 branch: Tue, Nov 1st 2016 NetBSD-6-0 branch: Fri, Nov 11th 2016 NetBSD-6-1 branch: Fri, Nov 11th 2016 NetBSD-6 branch: Fri, Nov 11th 2016 Teeny versions released later than the fix date will contain the fix. Please note that NetBSD releases prior to 6.0 are no longer supported. It is recommended that all users upgrade to a supported release. Abstract ======== A memory leak in the kernel could allow a local user to use up kernel memory via repeated calls to the connect system call, and thus to freeze - or eventually panic - the system. Technical Details ================= When calling the connect system call on a particular file descriptor with specific arguments, a kernel buffer allocated to temporarily hold a path buffer was not freed. Performing such a call in a loop would cause the kernel to run out of memory and eventually panic. 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-7 netbsd-7-0 netbsd-6 netbsd-6-1 netbsd-6-0 ---- ---- -------- ---------- -------- ---------- ---------- sys/kern/uipc_usrreq.c 1.181 1.169.2.4 1.169.2.3.2.1 1.136.8.4 1.136.8.3.2.1 1.136.8.2.2.1 To update from CVS, re-build, and re-install the kernel: # cd src # cvs update -d -P -r VERSION sys/kern/uipc_usrreq.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 Mootja Analysis Engine for detecting the issue, Maxime Villard for developing it and writing a fix. Revision History ================ 2017-01-21 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-SA2017-001.txt.asc Information about NetBSD and NetBSD security can be found at http://www.NetBSD.org/ and http://www.NetBSD.org/Security/ . Copyright 2017, The NetBSD Foundation, Inc. All Rights Reserved. Redistribution permitted only in full, unmodified form. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJYg41BAAoJEAZJc6xMSnBuFzYQALY+MeClp85wpGhLmxBOoVzQ drDRSoosEZJG1n5yqUuyvAka2KYYCIfMIw2JH7chvf0bDRZnwl32IJJYLzLvFPwf CVZibK990zSBxdiVQ9eOEr5K3RM/V4abxpa+3AYxPOyTwLpR0OMHhfI0pJ5eTo7X hBWrY9pjSU/To5EjMEBMc6SnuGs+LnW1o2TUyT/UbrvBO6Zs8gBuk7mIhxy0xK5f 39eZAwPvS1BF28NnFgesrw4gd5RwzKUYXcTVcHuGGCszcyejjmepumbV8aLL+/zw CetkXw8WMjM6YuPM9DEOCBDkYMElSAakkPATagK+25Agi81/HI2VNMwvER9Qinqk VKy9+rlXNlxa3D9qCSYfRrn40xdQ6PSZfRCvG2KEGfF40wplH5dHZsRkmvMzt8kY D+03F0eiifWnUVgdLhEYJQeGFoBkElIA20bH/NGhm0W/Rm3etxe0MQiW7lqzrOny G3YW0hxrp/YOnxDJmn35VKshq7iUY5clko3rfy7XF1VEsz5dTGrJsGwPKe7B5ZIj +Y4+p38KbfEACS0PLZVfEkSSd9eONwf31jp8e8rJAn9dGKLy/r8eQoFOIm61iPXJ g00YtgfE/CI2Z9PLF00V+vV4hlr4v4PJvMshF3SY9CSpuqTC/A9a01nDEIZs9Y5d nyZv4WFb3sTpLx5JzUEP =uCbX -----END PGP SIGNATURE-----