-----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-----