Subject: NetBSD Security Advisory 2003-010: remote panic in OSI networking code
To: None <tech-security@netbsd.org, current-users@netbsd.org>
From: NetBSD Security Officer <security-officer@netbsd.org>
List: tech-security
Date: 08/04/2003 14:12:47
-----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-----