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

===========================================================================
             AUSCERT External Security Bulletin Redistribution

                      ESB-2006.0605 -- [BSD][NetBSD]
             Malicious PPP options can overrun a kernel buffer
                              24 August 2006

===========================================================================

        AusCERT Security Bulletin Summary
        ---------------------------------

Publisher:            NetBSD
Operating System:     NetBSD
                      BSD variants
Impact:               Denial of Service
                      Reduced Security
Access:               Remote/Unauthenticated
CVE Names:            CVE-2006-4304

Ref:                  ESB-2006.0604

Original Bulletin:    
   ftp://ftp.NetBSD.org/pub/NetBSD/security/advisories/NetBSD-SA2006-019.txt.asc

- --------------------------BEGIN INCLUDED TEXT--------------------

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


		 NetBSD Security Advisory 2006-019
		 =================================

Topic:		Malicious PPP options can overrun a kernel buffer

Version:	NetBSD-current:	source prior to August 23, 2006
		NetBSD 4.0_BETA		affected
		NetBSD 3.1_RC1:		affected
		NetBSD 3.0.*		affected
		NetBSD 3.0:		affected
		NetBSD 2.1:		affected
		NetBSD 2.0.*		affected
		NetBSD 2.0:		affected

Severity:	Remote denial-of-service
		Potentially exploitable for further impact (unconfirmed)

Fixed:		NetBSD-current:		August 23, 2006
		NetBSD-4 branch:	August 23, 2006
			(4.0 will include the fix)
		NetBSD-3-0 branch:	August 23, 2006
			(3.0.2 will include the fix)
		NetBSD-3 branch:	August 23, 2006
			(3.1 will include the fix)
		NetBSD-2-1 branch:	August 23, 2006
			(2.1.1 will include the fix)
		NetBSD-2-0 branch:	August 23, 2006
			(2.0.4 will include the fix)
		NetBSD-2 branch:	August 23, 2006


Abstract
========

A problem has been identified in the in-kernel PPP code shared by ISDN PPP
interfaces ippp(4) and pppoe(4). Insufficient checking of options presented
by the peer may cause writing of copies of the malicious input beyond the
end of a buffer allocated for that purpose.

This could cause kernel memory corruption.  It is currently unclear if this
issue could be exploited any further than denial of service.  There are
currently no known exploits for this issue.

This vulnerability has been assigned CVE reference CVE-2006-4304.


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

The critical code deals with parsing and acknowledging or rejecting PPP
options at various levels, including LCP (line control protocol) options
prior to authentication. These options are variable length, starting with
an option identifier (1 byte), followed by a length (1 byte) and the 
content - depending on the option either fixed size or variable length.
All options are packed together into a packet with an overall length.
The option parser did not make sure an individual option's length does not
exceed the overall length. To reject such options, the whole option is
copied into a reject buffer, which is sized according to the overall length
of the packet. If some option's individual length exceeded the overall
lenght, the copy into the reject buffer would overflow the allocated
length.

While analyzing this problem and making the option parser more paranoid,
a few similar issues have been discovered and fixed, and some errors in
debug output (printing random bytes beyond the end of the content) have
been fixed too.

The attack is not routable, so attackers would need to dial in to an
ISDN server offering PPP connections, or be using PPPoE on a shared 
ethernet segment (which is possible in some cable modem setups using PPPoE). 
This issue could also be exploited by an untrusted ISP.


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

The pseudo-device pppoe is present in GENERIC kernels and the pseudo-device
ippp is present in GENERIC_ISDN configurations (for which no precompiled
kernel is provided).  The system must have a network interface configured to
use pppoe(4), or an ISDN interface configured to use ippp(4) in order to be
vulnerable to this attack.

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


Thanks To
=========

Pavel Cahyna for discovering the problem and reviewing fixes.
Martin Husemann for the initial patches.


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

	2006-08-23	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-SA2006-019.txt.asc

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-019.txt,v 1.2 2006/08/23 18:37:33 adrianp Exp $

- -----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.5 (NetBSD)

iQCVAwUBROygwz5Ru2/4N2IFAQKJUAP/dv734u/osRxdHQgwN/TIdCag963WMSv4
ghDB0A9JEi5R3gH3an0hoCM6U4US7tMp5WWFpOl6VJ2VjFmYnOwgIYQoRVJxFqm7
Y50pCAyEWQ8MSHjCPjmQhxKmxY2JL8tRF24FdKAm/rljSMnjp9qBFJgf6pDfhZv9
piLwssqhWms=
=NW/a
- -----END PGP SIGNATURE-----

- --------------------------END INCLUDED TEXT--------------------

You have received this e-mail bulletin as a result of your organisation's
registration with AusCERT. The mailing list you are subscribed to is
maintained within your organisation, so if you do not wish to continue
receiving these bulletins you should contact your local IT manager. If
you do not know who that is, please send an email to auscert@auscert.org.au
and we will forward your request to the appropriate person.

NOTE: Third Party Rights
This security bulletin is provided as a service to AusCERT's members.  As
AusCERT did not write the document quoted above, AusCERT has had no control
over its content. The decision to follow or act on information or advice
contained in this security bulletin is the responsibility of each user or
organisation, and should be considered in accordance with your organisation's
site policies and procedures. AusCERT takes no responsibility for consequences
which may arise from following or acting on information or advice contained in
this security bulletin.

NOTE: This is only the original release of the security bulletin.  It may
not be updated when updates to the original are made.  If downloading at
a later date, it is recommended that the bulletin is retrieved directly
from the author's website to ensure that the information is still current.

Contact information for the authors of the original document is included
in the Security Bulletin above.  If you have any questions or need further
information, please contact them directly.

Previous advisories and external security bulletins can be retrieved from:

        http://www.auscert.org.au/render.html?cid=1980

If you believe that your computer system has been compromised or attacked in 
any way, we encourage you to let us know by completing the secure National IT 
Incident Reporting Form at:

        http://www.auscert.org.au/render.html?it=3192

===========================================================================
Australian Computer Emergency Response Team
The University of Queensland
Brisbane
Qld 4072

Internet Email: auscert@auscert.org.au
Facsimile:      (07) 3365 7031
Telephone:      (07) 3365 4417 (International: +61 7 3365 4417)
                AusCERT personnel answer during Queensland business hours
                which are GMT+10:00 (AEST).
                On call after hours for member emergencies only.
===========================================================================

-----BEGIN PGP SIGNATURE-----
Comment: http://www.auscert.org.au/render.html?it=1967

iQCVAwUBRO1F1ih9+71yA2DNAQJYZwQAkvO0IjABijJUwokvcOcNxG7zRYdSYrcN
Ixkka/qFbIXYjwAFdkjXchLWjONDSMzuRs0JcqfBNLtd+hEyARoMbVQhI5IQ8Dsi
sn49qjDxqpCvDCh184KLGbDU4VmGRbIQdexarNBR1iZr2ysTF+I9/UMya+XLQG31
tBLa8EzM8Og=
=IFcu
-----END PGP SIGNATURE-----