NetBSD Security Advisory 2001-007: IP Filter may incorrectly pass packets

From: security-officerat_private
Date: Tue May 29 2001 - 23:25:50 PDT

  • Next message: security-officerat_private: "NetBSD Security Advisory 2001-006: Denial of service using bogus fragmented IPv4 packets"

    -----BEGIN PGP SIGNED MESSAGE-----
    
                     NetBSD Security Advisory 2001-007
                     =================================
    
    Topic:		IP Filter may incorrectly pass packets
    Version:	NetBSD 1.4, 1.5, -current
    Severity:       Unexpected network packets may be received by the system
    Fixed:		NetBSD-current:    April  6, 2001
    		NetBSD-1.5 branch: April 14, 2001
    		NetBSD-1.4 branch: April 14, 2001
    
    Abstract
    ========
    
    IP Filter (ipf) - the IP packet filtering software in NetBSD - has a
    bug where the checks on a fragmented packet are incomplete and
    it may be possible to abuse this to bypass filter rules.
    
    
    Technical Details
    =================
    
    Fragmented packets may be stored in a ``fragment cache'' in certain
    circumstances.  The fragment cache is checked for a packet match
    before any of the filter rules are checked. There were insufficient
    checks made on fragmented packets before inserting the packet into
    the fragment cache.
    
    This problem is most likely to occur if "keep frags" or "keep state"
    is used in the ipf rules, but it is possible if the ftp NAT proxy
    is used in the ipnat rules.
    
    
    Solutions and Workarounds
    =========================
    
    Upgrade the system from newer sources or binaries.
    
    Systems running NetBSD-current dated from before April 6, 2001
    should be upgraded to NetBSD-current dated April 6, 2001 or later.
    
    Systems running NetBSD 1.5.x systems dated from before April 14, 2001
    should be upgraded to NetBSD 1.5.x dated April 14, 2001 or later.
    NetBSD 1.5.1 will ship with the fix.
    
    Systems running NetBSD 1.4.x systems dated from before April 14, 2001
    should be upgraded to NetBSD 1.4.x dated April 14, 2001 or later.
    
    If you cannot upgrade the kernel and if you are running on a platform
    that supports it, you can patch the kernel binary using gdb: 
    	
    	# gdb --write /netbsd
    	(gdb) set ipfr_inuse=1000000
    	(gdb) quit
    
    Then reboot your system for the change to take effect. The value 1000000
    is not important, it just has to be greater than the IPFT_SIZE constant.
    
    
    Thanks To
    =========
    
    Thomas Lopatic for reporting the problem, and Darren Reed for fixing it.
    
    
    Revision History
    ================
    
            2001-05-29 - Initial Release
    
    
    More Information
    ================
    
    An up-to-date PGP signed copy of this release will be maintained at
      ftp://ftp.netbsd.org/pub/NetBSD/security/advisories/NetBSD-SA2001-007.txt.asc
    
    Information about NetBSD and NetBSD security can be found at
    http://www.NetBSD.ORG/ and http://www.NetBSD.ORG/Security/.
    
    
    Copyright 2001, The NetBSD Foundation, Inc.  All Rights Reserved.
    
    $NetBSD: NetBSD-SA2001-007.txt,v 1.4 2001/05/29 05:58:42 lukem Exp $
    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.0.5 (NetBSD)
    Comment: For info see http://www.gnupg.org
    
    iQCVAwUBOxM/hT5Ru2/4N2IFAQE6OQP/f9IEZ7nWZ/AVNUDmP3DA9rHUZEIw05VG
    sUpFPWYOK6Oi543gi0lGeH+SlxnuQgWLT32JWEPzFAq3/oTGOsx3nk5JdFG4tznU
    JG+wuDDheXA+v6jgYDCzc3T7USkE5bipyv8mJdzib4FtAXskwkXRTXhoMKdgz5n0
    ChcLdWUF+wQ=
    =JDHk
    -----END PGP SIGNATURE-----
    



    This archive was generated by hypermail 2b30 : Wed May 30 2001 - 01:36:22 PDT