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