patches for easier mirroring, to eliminate a special copy, to make www.freebsd.org/security a full copy of security.freebsd.org and be eventually be the same. For now files are just sitting there. The symlinks are missing. Discussed on: www (repository location) Discussed with: simon (so)
104 lines
3.8 KiB
Text
104 lines
3.8 KiB
Text
-----BEGIN PGP SIGNED MESSAGE-----
|
|
|
|
=============================================================================
|
|
FreeBSD-SA-02:21.tcpip Security Advisory
|
|
FreeBSD, Inc.
|
|
|
|
Topic: routing table memory leak
|
|
|
|
Category: core
|
|
Module: net
|
|
Announced: 2002-04-17
|
|
Credits: Jayanth Vijayaraghavan <jayanth@FreeBSD.org>
|
|
Ruslan Ermilov <ru@FreeBSD.org>
|
|
Affects: FreeBSD 4.5-RELEASE
|
|
FreeBSD 4-STABLE after 2001-12-07 09:23:11 UTC
|
|
and prior to the correction date
|
|
Corrected: 2002-03-22 16:54:19 UTC (RELENG_4)
|
|
2002-04-15 17:12:08 UTC (RELENG_4_5)
|
|
FreeBSD only: YES
|
|
|
|
I. Background
|
|
|
|
The TCP/IP stack's routing table records information about how to
|
|
reach various destinations. The first time a TCP connection is
|
|
established with a particular host, a so-called "cloned route" entry
|
|
for that host is automatically derived from one of the predefined
|
|
routes and added to the table. Each entry has a reference count that
|
|
indicates how many existing connections use that entry; when the
|
|
reference count reaches zero, the entry is removed from the table.
|
|
|
|
II. Problem Description
|
|
|
|
A bug was introduced into ip_output() wherein the processing of an
|
|
ICMP echo reply message would cause a reference count on a routing
|
|
table entry to never be decremented. Thus, memory allocated for the
|
|
routing table entry was never deallocated.
|
|
|
|
III. Impact
|
|
|
|
This bug could be exploited to effect a remote denial of service
|
|
attack. An attacker could cause new routing table entries (for
|
|
example, by taking advantage of TCP's route cloning behavior) and
|
|
then utilize this bug to cause the route entry to never be
|
|
deallocated. In this fashion, the target system's memory can be
|
|
exhausted.
|
|
|
|
IV. Workaround
|
|
|
|
Use a packet filter (see ipf(8) or ipfw(8)) to deny ICMP echo
|
|
messages.
|
|
|
|
V. Solution
|
|
|
|
1) Upgrade your vulnerable system to 4.5-STABLE, 4.5-RELEASE-p3, or
|
|
the RELENG_4_5 security branch dated after the respective correction
|
|
dates.
|
|
|
|
2) To patch your present system:
|
|
|
|
a) Download the relevant patch from the location below, and verify the
|
|
detached PGP signature using your PGP utility.
|
|
|
|
[4.5-RELEASE,
|
|
4-STABLE between 2001-12-28 10:08:33 UTC and 2002-02-20 14:57:41 UTC]
|
|
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:21/tcpip.patch
|
|
# fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/CERT/patches/SA-02:21/tcpip.patch.asc
|
|
|
|
b) Execute the following commands as root:
|
|
|
|
# cd /usr/src
|
|
# patch < /path/to/patch
|
|
|
|
c) Recompile your kernel as described in
|
|
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.
|
|
|
|
Path Revision
|
|
Branch
|
|
- -------------------------------------------------------------------------
|
|
sys/netinet/ip_icmp.c
|
|
RELENG_4 1.39.2.16
|
|
RELENG_4_5 1.39.2.14.2.1
|
|
sys/netinet/ip_mroute.c
|
|
RELENG_4 1.56.2.4
|
|
RELENG_4_5 1.56.2.3.2.1
|
|
sys/netinet/ip_output.c
|
|
RELENG_4 1.99.2.29
|
|
RELENG_4_5 1.99.2.24.2.1
|
|
- -------------------------------------------------------------------------
|
|
-----BEGIN PGP SIGNATURE-----
|
|
Version: GnuPG v1.0.6 (FreeBSD)
|
|
Comment: For info see http://www.gnupg.org
|
|
|
|
iQCVAwUBPL3IEFUuHi5z0oilAQE56AP/X0tJA/Q0y42JDqxI2A0NRnKyR5YWoH8D
|
|
i3izr0MxMTyPnuWg+uZHZhr/ve2AS2mTfNi7do0Ehdw0U2CEMnPKEVLMqt7kMFmL
|
|
i+ib4HCijb4RWn3WEC6ueO14SQDCB+X9w/yCVEfeHMWd2PrQWtDoCPmurOuQCz4W
|
|
IFu9kJLMhMA=
|
|
=qsYz
|
|
-----END PGP SIGNATURE-----
|