FreeBSD Security Advisory FreeBSD-SA-06:08.sack
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
=============================================================================
FreeBSD-SA-06:08.sack Security Advisory
The FreeBSD Project
Topic: Infinite loop in SACK handling
Category: core
Module: netinet
Announced: 2006-02-01
Credits: Scott Wood
Affects: FreeBSD 5.3 and 5.4
Corrected: 2006-01-24 01:16:18 UTC (RELENG_5, 5.4-STABLE)
2006-02-01 19:43:10 UTC (RELENG_5_4, 5.4-RELEASE-p11)
2006-02-01 19:43:36 UTC (RELENG_5_3, 5.3-RELEASE-p26)
CVE Name: CVE-2006-0433
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
SACK (Selective Acknowledgement) is an extension to the TCP/IP protocol
that allows hosts to acknowledge the receipt of some, but not all, of
the packets sent, thereby reducing the cost of retransmissions.
II. Problem Description
When insufficient memory is available to handle an incoming selective
acknowledgement, the TCP/IP stack may enter an infinite loop.
III. Impact
By opening a TCP connection and sending a carefully crafted series of
packets, an attacker may be able to cause a denial of service.
IV. Workaround
On FreeBSD 5.4, the net.inet.tcp.sack.enable sysctl can be used to
disable the use of SACK:
# sysctl net.inet.tcp.sack.enable=0
No workaround is available for FreeBSD 5.3.
V. Solution
Perform one of the following:
1) Upgrade your vulnerable system to 5-STABLE or to the RELENG_5_4 or
RELENG_5_3 security branch dated after the correction date.
2) To patch your present system:
The following patch have been verified to apply to FreeBSD 5.3 and
5.4 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:08/sack.patch
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-06:08/sack.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/netinet/tcp_sack.c 1.3.2.10
RELENG_5_4
src/UPDATING 1.342.2.24.2.20
src/sys/conf/newvers.sh 1.62.2.18.2.16
src/sys/netinet/tcp_sack.c 1.3.2.5.2.1
RELENG_5_3
src/UPDATING 1.342.2.13.2.29
src/sys/conf/newvers.sh 1.62.2.15.2.31
src/sys/netinet/tcp_sack.c 1.3.4.1
- -------------------------------------------------------------------------
VII. References
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-0433
The latest revision of this advisory is available at
ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-06:08.sack.asc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (FreeBSD)
iD8DBQFD4RCIFdaIBMps37IRAplNAJ9sEJf5VkMOJaWO7P/wNHEzzW1aqACfcAfL
e95PJAa1af/klNC+fZEipnY=
=yZbN
-----END PGP SIGNATURE-----