FreeBSD-SA-06:07.pf - IP fragment handling panic in pf(4)
9cad705f66791abb1914cb7c4d59843f645a367a3c38014622cf3fcd703c2065
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
=============================================================================
FreeBSD-SA-06:07.pf Security Advisory
The FreeBSD Project
Topic: IP fragment handling panic in pf(4)
Category: contrib
Module: sys_contrib
Announced: 2006-01-25
Credits: Jakob Schlyter, Daniel Hartmeier
Affects: FreeBSD 5.3, FreeBSD 5.4, and FreeBSD 6.0
Corrected: 2006-01-25 10:00:59 UTC (RELENG_6, 6.0-STABLE)
2006-01-25 10:01:26 UTC (RELENG_6_0, 6.0-RELEASE-p4)
2006-01-25 10:01:47 UTC (RELENG_5, 5.4-STABLE)
2006-01-25 10:02:07 UTC (RELENG_5_4, 5.4-RELEASE-p10)
2006-01-25 10:02:27 UTC (RELENG_5_3, 5.3-RELEASE-p25)
CVE Name: CVE-2006-0381
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
pf is an Internet Protocol packet filter originally written for OpenBSD.
In addition to filtering packets, it also has packet normalization
capabilities.
II. Problem Description
A logic bug in pf's IP fragment cache may result in a packet fragment
being inserted twice, violating a kernel invariant.
III. Impact
By sending carefully crafted sequence of IP packet fragments, a remote
attacker can cause a system running pf with a ruleset containing a
'scrub fragment crop' or 'scrub fragment drop-ovl' rule to crash.
IV. Workaround
Do not use 'scrub fragment crop' or 'scrub fragment drop-ovl' rules
on systems running pf. In most cases, such rules can be replaced by
'scrub fragment reassemble' rules; see the pf.conf(5) manual page for
more details.
Systems which do not use pf, or use pf but do not use the aforementioned
rules, are not affected by this issue.
V. Solution
Perform one of the following:
1) Upgrade your vulnerable system to 5-STABLE or 6-STABLE, or to the
RELENG_6_0, RELENG_5_4, or RELENG_5_3 security branch dated after the
correction date.
2) To patch your present system:
The following patches have been verified to apply to FreeBSD 5.3, 5.4,
and 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:07/pf.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-06:07/pf.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_5
src/sys/contrib/pf/net/pf_norm.c 1.10.2.2
RELENG_5_4
src/UPDATING 1.342.2.24.2.19
src/sys/conf/newvers.sh 1.62.2.18.2.15
src/sys/contrib/pf/net/pf_norm.c 1.10.6.1
RELENG_5_3
src/UPDATING 1.342.2.13.2.28
src/sys/conf/newvers.sh 1.62.2.15.2.30
src/sys/contrib/pf/net/pf_norm.c 1.10.4.1
RELENG_6
src/sys/contrib/pf/net/pf_norm.c 1.11.2.3
RELENG_6_0
src/UPDATING 1.416.2.3.2.9
src/sys/conf/newvers.sh 1.69.2.8.2.5
src/sys/contrib/pf/net/pf_norm.c 1.11.2.1.2.1
- -------------------------------------------------------------------------
VII. References
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-0381
The latest revision of this advisory is available at
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-06:07.pf.asc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (FreeBSD)
iD8DBQFD105kFdaIBMps37IRAth+AKCPd0puGZJ1u1/gbFRgYMQpQs8TiQCcD1ai
56HQEqlhvzoW09g/05mbPCk=
=hyeL
-----END PGP SIGNATURE-----