Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

NetBSD Security Advisory 2009-003: proplib crashes on reading bad XML data



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


                 NetBSD Security Advisory 2009-003
                 =================================

Topic:          proplib crashes on reading bad XML data

Version:        NetBSD-current:         affected prior to March 30, 2009
                NetBSD 5.0:             not affected
                NetBSD 4.0.1:           affected
                NetBSD 4.0:             affected

Severity:       Denial of service

Fixed:          NetBSD-current:         March 30, 2009
                NetBSD-5 branch:        March 30, 2009
                        (5.0 includes the fix)
                NetBSD-4-0 branch:      March 31, 2009
                        (4.0.2 will include the fix)
                NetBSD-4 branch:        March 31, 2009
                        (4.1 will include the fix)

Please note that NetBSD releases prior to 4.0 are no longer supported.
It is recommended that all users upgrade to a supported release.


Abstract
========

The proplib library can crash if a badly formatted externalized plist
is presented for import. The crash will happen during the
transformation of the text XML form into a binary list. This bug can
lead to a system panic because many drivers use proplib as a
communication channel.


Technical Details
=================

The proplib library can crash if it is presented with a non-defined
element (e.g. <number>) in the external XML form.  During internalization
proplib will crash by dereferencing a NULL pointer.

Every driver which uses proplib for user to kernel communication is
vulnerable to this bug, allowing a system to be crashed by an ordinary
user with access to the driver.


Solutions and Workarounds
=========================

For all NetBSD versions, you need to obtain fixed sources, rebuild and
install a new kernel, and reboot the system.

The fixed source may be obtained from the NetBSD CVS repository.
The following instructions briefly summarize 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 common/lib/libprop/prop_object.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:

   http://www.NetBSD.org/guide/en/chap-kernel.html

Recompiling and reinstalling the userlevel libprop (located in
src/lib/libprop) may be prudent to prevent unexpected crashes of
userland code, but should not be necessary for security purposes.

In order to recompile and reinstall your userlevel libprop:
        # cd src/lib/libprop
        # make USETOOLS=no cleandir dependall
        # make USETOOLS=no install


Thanks To
=========

Adam Hamsik for the fix and initial analysis of the issue and for
the first draft of this advisory, and to Soren Jacobsen and David
Holland for assistance with the content of this advisory.


Revision History
================

        2009-06-22      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-SA2009-003.txt.asc

Information about NetBSD and NetBSD security can be found at
http://www.NetBSD.org/ and http://www.NetBSD.org/Security/.


Copyright 2009, The NetBSD Foundation, Inc.  All Rights Reserved.
Redistribution permitted only in full, unmodified form.

$NetBSD: NetBSD-SA2009-003.txt,v 1.1 2009/06/22 19:31:01 tonnerre Exp $
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (NetBSD)

iQCVAwUBSj/8RT5Ru2/4N2IFAQJdvgP/edYmzjp0DlDjo6glc6w8K9diUQQ+92SG
5U42Kmf/hRxnHn0hZLXB7txLSWfks9DFiTVfGWyBXKFtS9h05YfWCjP1flwxvviN
Uv8y8iDB/krAq9lR9M0x3CMlpe7Hfzpje04fXRLxUloLA427EWGCXA2noyNhPpnu
OKn8ivX4VUs=
=setc
-----END PGP SIGNATURE-----


Home | Main Index | Thread Index | Old Index