Subject: NetBSD Security Advisory 2003-010: remote panic in OSI networking code
To: None <netbsd-announce@netbsd.org>
From: NetBSD Security Officer <security-officer@netbsd.org>
List: netbsd-announce
Date: 08/04/2003 14:13:01
-----BEGIN PGP SIGNED MESSAGE-----
NetBSD Security Advisory 2003-010
=================================
Topic: remote panic in OSI networking code
Version: NetBSD-current: source prior to May 26, 2003
NetBSD 1.6.1: affected
NetBSD 1.6: affected
NetBSD-1.5.3: affected
NetBSD-1.5.2: affected
NetBSD-1.5.1: affected
NetBSD-1.5: affected
Severity: remote system crash possible on OSI connected systems
Fixed: NetBSD-current: May 26, 2003
NetBSD-1.6 branch: May 26, 2003 (1.6.2 will include the fix)
NetBSD-1.5 branch: May 28, 2003
Abstract
========
It is possible to crash an OSI connected system remotely by sending it
a carefully prepared OSI networking packet.
Technical Details
=================
The OSI networking kernel (sys/netiso) contains a function that sends
error indications to the sender of an OSI packet in certain error
conditions. This function prepares its own packet header mbuf, but was
never converted to use a "PKTHDR" mbuf as has been required by the
BSD networking stack for a long time.
Networking drivers sending a packet prepared in this way will either
panic complaining about this condition (if the kernel was compiled
with "options DEBUG") or crash in erratic ways (if they try to use
the invalid information in a header mbuf not containing the pkthdr
fields).
Solutions and Workarounds
=========================
How to determine if your system is vulnerable:
OSI is not a commonly used network stack, and most NetBSD users will not
be affected by this advisory. If 'ifconfig -a | grep iso' does not show
iso addresses assigned on any interface, the system is not vulnerable.
Any system with the abovementioned kernel date that has OSI addresses
configured is vulnerable.
Workaround: don't configure OSI addresses onto your system, or disable
any OSI addresses configured, or configure and boot a kernel without
``options OSI''. This will disable any OSI communications.
The following instructions describe how to upgrade your kernel
binaries by updating your source tree and rebuilding and
installing a new version of the kernel.
* NetBSD-current:
Systems running NetBSD-current dated from before 2003-05-25
should be upgraded to NetBSD-current dated 2003-05-26 or later.
The following file needs to be updated from the
netbsd-current CVS branch (aka HEAD):
sys/netiso/clnp_er.c
To update from CVS, re-build, and install your kernel, and reboot
% cd src
% cvs update -d -P sys/netiso
% cd sys/arch/ARCH/conf
% config KERNCONFFILE
% cd ../compile/KERNCONFFILE
% make clean depend;make
% su
# cp netbsd /
# reboot
* NetBSD 1.6, 1.6.1:
The binary distribution of NetBSD 1.6.1 is vulnerable.
Systems running NetBSD 1.6 sources dated from before
2003-05-25 should be upgraded from NetBSD 1.6 sources dated
2003-05-26 or later.
NetBSD 1.6.2 will include the fix.
The following file needs to be updated from the
netbsd-1-6 CVS branch:
sys/netiso/clnp_er.c
To update from CVS, re-build, and install a patched kernel:
% cd src
% cvs update -d -P -r netbsd-1-6 sys/netiso
% cd sys/arch/ARCH/conf
% config KERNCONFFILE
% cd ../compile/KERNCONFFILE
% make clean depend;make
% su
# cp netbsd /
# reboot
Alternatively, apply the following patch (with potential offset
differences):
ftp://ftp.NetBSD.org/pub/NetBSD/security/patches/SA2003-010-osi.patch
To patch, re-build and install the kernel, then reboot:
# cd src
# patch < /path/to/SA2003-010-osi.patch
% cd sys/arch/ARCH/conf
% config KERNCONFFILE
% cd ../compile/KERNCONFFILE
% make clean depend;make
% su
# cp netbsd /
# reboot
* NetBSD 1.5, 1.5.1, 1.5.2, 1.5.3:
The binary distribution of NetBSD 1.5.3 is vulnerable.
Systems running NetBSD 1.5, 1.5.1, 1.5.2, or 1.5.3 sources dated
from before 2003-05-27 should be upgraded from NetBSD 1.5.*
sources dated 2003-05-28 or later.
The following files need to be updated from the
netbsd-1-5 CVS branch:
sys/netiso/clnp_er.c
To update from CVS, re-build, and install a patched kernel:
% cd src
% cvs update -d -P -r netbsd-1-5 sys/netiso
% cd sys/arch/ARCH/conf
% config KERNCONFFILE
% cd ../compile/KERNCONFFILE
% make clean depend;make
% su
# cp netbsd /
# reboot
Alternatively, apply the following patch (with potential offset
differences):
ftp://ftp.NetBSD.org/pub/NetBSD/security/patches/SA2003-010-osi.patch
To patch, re-build and install the kernel, then reboot:
# cd src
# patch < /path/to/SA2003-010-osi.patch
% cd sys/arch/ARCH/conf
% config KERNCONFFILE
% cd ../compile/KERNCONFFILE
% make clean depend;make
% su
# cp netbsd /
# reboot
Thanks To
=========
Ignatios Souvatzis
Revision History
================
2003-08-04 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-SA2003-010.txt.asc
Information about NetBSD and NetBSD security can be found at
http://www.NetBSD.org/ and http://www.NetBSD.org/Security/.
Copyright 2003, The NetBSD Foundation, Inc. All Rights Reserved.
Redistribution permitted only in full, unmodified form.
$NetBSD: NetBSD-SA2003-010.txt,v 1.8 2003/08/04 16:02:47 david Exp $
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (NetBSD)
Comment: For info see http://www.gnupg.org
iQCVAwUBPy6Eaj5Ru2/4N2IFAQHdLQP/T1kvZZQIr3S/F/JbfJCxWrQbkwGkUONu
AuyC7xxuAatC5ZvzKqsMr/+0nYxXyouUQaplwK+gKLFJQB+HgAqK56eZU74yaPuf
1+XVWvuVChXyENDtiZW3+riJMWzXaxqa56HyOE92WA6DSTFXSqzq2x5kihw7kLcI
ZQ7A1MCZV00=
=+avA
-----END PGP SIGNATURE-----