FreeBSD Security Advisories
2007-Apr-26 23:49 UTC
FreeBSD Security Advisory FreeBSD-SA-07:03.ipv6
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
============================================================================FreeBSD-SA-07:03.ipv6
Security Advisory
The FreeBSD Project
Topic: IPv6 Routing Header 0 is dangerous
Category: core
Module: ipv6
Announced: 2007-04-26
Credits: Philippe Biondi, Arnaud Ebalard, Jun-ichiro itojun Hagino
Affects: All FreeBSD releases.
Corrected: 2007-04-24 11:42:42 UTC (RELENG_6, 6.2-STABLE)
2007-04-26 23:42:23 UTC (RELENG_6_2, 6.2-RELEASE-p4)
2007-04-26 23:41:59 UTC (RELENG_6_1, 6.1-RELEASE-p16)
2007-04-24 11:44:23 UTC (RELENG_5, 5.5-STABLE)
2007-04-26 23:41:27 UTC (RELENG_5_5, 5.5-RELEASE-p12)
CVE Name: CVE-2007-2242
I. Background
IPv6 provides a routing header option which allows a packet sender to
indicate how the packet should be routed, overriding the routing knowledge
present in a network. This functionality is roughly equivalent to the
"source routing" option in IPv4. All nodes in an IPv6 network -- both
routers and hosts -- are required by RFC 2640 to process such headers.
II. Problem Description
There is no mechanism for preventing IPv6 routing headers from being used
to route packets over the same link(s) many times.
III. Impact
An attacker can "amplify" a denial of service attack against a link
between
two vulnerable hosts; that is, by sending a small volume of traffic the
attacker can consume a much larger amount of bandwidth between the two
vulnerable hosts.
An attacker can use vulnerable hosts to "concentrate" a denial of
service
attack against a victim host or network; that is, a set of packets sent
over a period of 30 seconds or more could be constructed such that they
all arrive at the victim within a period of 1 second or less.
Other attacks may also be possible.
IV. Workaround
No workaround is available.
V. Solution
NOTE WELL: The solution described below causes IPv6 type 0 routing headers
to be ignored. Support for IPv6 type 0 routing headers can be re-enabled
if required by setting the newly added net.inet6.ip6.rthdr0_allowed sysctl
to a non-zero value.
Perform one of the following:
1) Upgrade your vulnerable system to 5-STABLE, or 6-STABLE, or to the
RELENG_6_2, RELENG_6_1, or RELENG_5_5 security branch dated after the
correction date.
2) To patch your present system:
The following patches have been verified to apply to FreeBSD 5.5, 6.1,
and 6.2 systems.
a) Download the relevant patch from the location below, and verify the
detached PGP signature using your PGP utility.
# fetch http://security.FreeBSD.org/patches/SA-07:03/ipv6.patch
# fetch http://security.FreeBSD.org/patches/SA-07:03/ipv6.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/netinet6/in6.h 1.35.2.5
src/sys/netinet6/in6_proto.c 1.29.2.5
src/sys/netinet6/route6.c 1.10.4.2
RELENG_5_5
src/UPDATING 1.342.2.35.2.12
src/sys/conf/newvers.sh 1.62.2.21.2.14
src/sys/netinet6/in6.h 1.35.2.3.2.1
src/sys/netinet6/in6_proto.c 1.29.2.4.2.1
src/sys/netinet6/route6.c 1.10.4.1.4.1
RELENG_6
src/sys/netinet6/in6.h 1.36.2.8
src/sys/netinet6/in6_proto.c 1.32.2.6
src/sys/netinet6/route6.c 1.11.2.2
RELENG_6_2
src/UPDATING 1.416.2.29.2.7
src/sys/conf/newvers.sh 1.69.2.13.2.7
src/sys/netinet6/in6.h 1.36.2.7.2.1
src/sys/netinet6/in6_proto.c 1.32.2.5.2.1
src/sys/netinet6/route6.c 1.11.2.1.4.1
RELENG_6_1
src/UPDATING 1.416.2.22.2.18
src/sys/conf/newvers.sh 1.69.2.11.2.18
src/sys/netinet6/in6.h 1.36.2.6.2.1
src/sys/netinet6/in6_proto.c 1.32.2.4.2.1
src/sys/netinet6/route6.c 1.11.2.1.2.1
- -------------------------------------------------------------------------
VII. References
http://www.secdev.org/conf/IPv6_RH_security-csw07.pdf
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-2242
The latest revision of this advisory is available at
http://security.FreeBSD.org/advisories/FreeBSD-SA-07:03.ipv6.asc
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (FreeBSD)
iD4DBQFGMTlvFdaIBMps37IRApu3AJYsifWIDLcyxNcMdnkvw4nBqXFoAJ43+IzB
M5sIdCmLQABByFlbMB2BjQ==OrNf
-----END PGP SIGNATURE-----
> ============================================================================> FreeBSD-SA-07:03.ipv6 Security Advisory > The FreeBSD Project > > Topic: IPv6 Routing Header 0 is dangerous- snip -> I. Background > > IPv6 provides a routing header option which allows a packet sender to > indicate how the packet should be routed, overriding the routing knowledge > present in a network. This functionality is roughly equivalent to the > "source routing" option in IPv4. All nodes in an IPv6 network -- both > routers and hosts -- are required by RFC 2640 to process such headers.s/RFC 2640/RFC 2460/ Regards, -- Koga, Youichirou
Koga Youichirou wrote:>> ============================================================================>> FreeBSD-SA-07:03.ipv6 Security Advisory >> The FreeBSD Project >> IPv6 provides a routing header option which allows a packet sender to >> indicate how the packet should be routed, overriding the routing knowledge >> present in a network. This functionality is roughly equivalent to the >> "source routing" option in IPv4. All nodes in an IPv6 network -- both >> routers and hosts -- are required by RFC 2640 to process such headers. > > s/RFC 2640/RFC 2460/Oops... Colin Percival
Umm maybe its just but I fail to see why this is a security advisory (initially caught this on the OBSD list). You are following the RFC .. if you don't like "evil" packets, then drop them at the firewall or router layer ... don't see the need for an OS fix.
Hi,> Affects: All FreeBSD releases. > Corrected: 2007-04-24 11:42:42 UTC (RELENG_6, 6.2-STABLE) > 2007-04-26 23:42:23 UTC (RELENG_6_2, 6.2-RELEASE-p4) > 2007-04-26 23:41:59 UTC (RELENG_6_1, 6.1-RELEASE-p16) > 2007-04-24 11:44:23 UTC (RELENG_5, 5.5-STABLE) > 2007-04-26 23:41:27 UTC (RELENG_5_5, 5.5-RELEASE-p12) > CVE Name: CVE-2007-2242For those running releng_4_11, I observed this message: http://leaf.dragonflybsd.org/mailarchive/commits/2007-04/msg00178.html from our neighbors at dragonfly. It seems to apply cleanly (I did the patch by hand) and the kernel at leasts compiles. Unable to verify it runs ok or solves this issue due to time constraints atm :-/ Hth. Robert
Apparently Analagous Threads
- FreeBSD Security Advisory FreeBSD-SA-07:03.ipv6
- FreeBSD Errata Notice FreeBSD-EN-12:02.ipv6refcount
- System panic (mpd related?)
- cvs commit: src/contrib/pf/pfctl parse.y src/lib/libc/sys Symbol.map getsockopt.2 src/sbin/ipfw ipfw.8 ipfw2.c src/sys/conf NOTES options src/sys/contrib/ipfilter/netinet ip_fil_freebsd.c src/sys/contrib/pf/net pf.c pf_ioctl.c src/sys/kern init_sysent.c
- FreeBSD Security Advisory FreeBSD-SA-06:20.bind