FreeBSD Security Advisory - ipfw maintains a pointer to layer 4 header information in the event that it needs to send a TCP reset or ICMP error message to discard packets. Due to incorrect handling of IP fragments, this pointer fails to get initialized.
b38cd8ef482c561df679f578513cab445b16a6b986a0729f301d0dc0adb15098
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
=============================================================================
FreeBSD-SA-06:04.ipfw Security Advisory
The FreeBSD Project
Topic: ipfw IP fragment denial of service
Category: core
Module: ipfw
Announced: 2006-01-11
Credits: Oleg Bulyzhin
Affects: FreeBSD 6.0-RELEASE
Corrected: 2006-01-11 08:02:16 UTC (RELENG_6, 6.0-STABLE)
2006-01-11 08:03:18 UTC (RELENG_6_0, 6.0-RELEASE-p2)
CVE Name: CVE-2006-0054
For general information regarding FreeBSD Security Advisories,
including descriptions of the fields above, security branches, and the
following sections, please visit
<URL:http://www.freebsd.org/security/>.
I. Background
ipfw(8) is a system facility which provides IP packet filtering,
accounting, and redirection. Among the many features, while discarding
packets it can perform actions defined by the user, such as sending
back TCP reset or ICMP unreachable packets. These operations can be
performed by using the reset, reject or uncreach actions.
II. Problem Description
The firewall maintains a pointer to layer 4 header information in the
event that it needs to send a TCP reset or ICMP error message to
discard packets. Due to incorrect handling of IP fragments, this
pointer fails to get initialized.
III. Impact
An attacker can cause the firewall to crash by sending ICMP IP
fragments to or through firewalls which match any reset, reject or
unreach actions.
IV. Workaround
Change any reset, reject or unreach actions to deny. It should be
noted that this will result in packets being silently discarded.
V. Solution
Perform one of the following:
1) Upgrade your vulnerable system to 6-STABLE or to the RELENG_6_0
security branch dated after the correction date.
2) To patch your present system:
The following patches have been verified to apply to FreeBSD 6.0
systems.
a) Download the relevant patch from the location below, and verify the
detached PGP signature using your PGP utility.
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-06:04/ipfw.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-06:04/ipfw.patch.asc
b) Apply the patch.
# cd /usr/src
# patch < /path/to/patch
c) Recompile your kernel as described in
<URL:http://www.freebsd.org/handbook/kernelconfig.html> and reboot the
system.
VI. Correction details
The following list contains the revision numbers of each file that was
corrected in FreeBSD.
Branch Revision
Path
- -------------------------------------------------------------------------
RELENG_6
src/sys/netinet/ip_fw2.c 1.106.2.6
RELENG_6_0
src/UPDATING 1.416.2.3.2.7
src/sys/conf/newvers.sh 1.69.2.8.2.3
src/sys/netinet/ip_fw2.c 1.106.2.3.2.1
- -------------------------------------------------------------------------
VII. References
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2006-0054
The latest revision of this advisory is available at
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-06:04.ipfw.asc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (FreeBSD)
iD8DBQFDxL4vFdaIBMps37IRAmrZAJ4qRzdR0zR0u9ZY5RTTsMF5ZcGBUACfa5Gn
9kbuhOTex8BBlNFRHYCd9e4=
=WcS+
-----END PGP SIGNATURE-----