NetBSD if_bridge() May Disclose Portions of Kernel Memory to Local Users
SecurityTracker Alert ID: 1015846|
SecurityTracker URL: http://securitytracker.com/id/1015846
(Links to External Site)
Date: Mar 30 2006
Disclosure of system information, Disclosure of user information|
Fix Available: Yes Vendor Confirmed: Yes |
Version(s): 1.6, 2.0, 2.1, 3.0|
A vulnerability was reported in NetBSD in the bridge(4) implementation. A local user can view portions of kernel memory.|
The if_bridge(4) code does not properly initialize stack memory used to temporarily store ioctl(2) request results. As a result, the calling process may be able to access portions of kernel stack memory.
Only a small number of bytes is exposed.
Xin LI reported this vulnerability.
A local user can view portions of kernel stack memory.|
The vendor has issued a fix. The vendor's advisory is available at:|
Vendor URL: www.netbsd.org/ (Links to External Site)
Access control error|
Source Message Contents
Subject: NetBSD Security Advisory 2006-005: bridge memory disclosure|
-----BEGIN PGP SIGNED MESSAGE-----
NetBSD Security Advisory 2006-005
Topic: bridge memory disclosure
Version: NetBSD-current: source prior to January 17, 2006
NetBSD 3.0: affected
NetBSD 2.1: affected
NetBSD 2.0.*: affected
NetBSD 2.0: affected
NetBSD 1.6.*: affected
NetBSD 1.6: affected
Severity: Kernel sensitive information can be disclosed
Fixed: NetBSD-current: January 17, 2006
NetBSD-3-0 branch: February 12, 2006
(3.0.1 will include the fix)
NetBSD-3 branch: February 12, 2006
NetBSD-2-1 branch: February 12, 2006
(2.1.1 will include the fix)
NetBSD-2-0 branch: February 12, 2006
(2.0.4 will include the fix)
NetBSD-2 branch: February 12, 2006
An information disclosure issue exists in if_bridge(4) code.
The bridge(4) ioctl(2) calls did not zero out the stack memory used
to temporarily store the results of the ioctl(2) requests before
copying them back to the requesting process. Thus portions of the
kernel stack memory could be exposed to the calling process. The
impact of this is minor since:
1. the number of bytes exposed is small
2. the location and therefore the contents cannot be controlled
by the calling process and
3. the buffer is partially overwritten by the results
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), 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 -d -P sys/net/if_bridge.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:
Xin LI for notification and the initial fixes.
Christos Zoulas for implementing the fixes.
2006-03-29 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 2006, The NetBSD Foundation, Inc. All Rights Reserved.
Redistribution permitted only in full, unmodified form.
$NetBSD: NetBSD-SA2006-005.txt,v 1.8 2006/03/29 11:14:28 adrianp Exp $
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v18.104.22.168 (NetBSD)
-----END PGP SIGNATURE-----