NetBSD Memory Leak in connect() Lets Local Users Consume Excessive Memory Resources to Cause a Kernel Panic
SecurityTracker Alert ID: 1037664|
SecurityTracker URL: http://securitytracker.com/id/1037664
(Links to External Site)
Date: Jan 22 2017
Denial of service via local system|
Fix Available: Yes Vendor Confirmed: Yes |
Version(s): 6.0 - 6.0.5, 6.1 - 6.1.4, 7.0 - 7.0.2|
A vulnerability was reported in NetBSD. A local user can consume excessive memory on the target system.|
A local user can make a specially crafted connect() system call (repeatedly) to trigger a memory leak and consume excessive memory resources on the target system. As a result, a kernel panic may occur.
Maxime Villard developed the Mootja Analysis Engine, which detected this vulnerability.
A local user can consume excessive memory resources on the target system and cause a kernel panic.|
The vendor has issued a fix.|
The vendor advisory is available at:
Vendor URL: ftp.NetBSD.org/pub/NetBSD/security/advisories/NetBSD-SA2017-001.txt.asc (Links to External Site)
Access control error, Resource error|
Source Message Contents
Subject: NetBSD Security Advisory 2017-001: Memory leak in the connect system call|
-----BEGIN PGP SIGNED MESSAGE-----
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.
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.
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
---- ---- -------- ---------- -------- ---------- ----------
1.181 126.96.36.199 188.8.131.52.2.1 184.108.40.206 220.127.116.11.2.1 18.104.22.168.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:
The Mootja Analysis Engine for detecting the issue, Maxime Villard for
developing it and writing a fix.
2017-01-21 Initial release
Advisories may be updated as new information becomes available.
The most recent version of this advisory (PGP signed) can be found at
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
-----END PGP SIGNATURE-----