diff options
-rw-r--r-- | sys/netinet6/route6.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/sys/netinet6/route6.c b/sys/netinet6/route6.c index 7e4e0e2588b..b0e8c8f3079 100644 --- a/sys/netinet6/route6.c +++ b/sys/netinet6/route6.c @@ -1,4 +1,4 @@ -/* $OpenBSD: route6.c,v 1.15 2007/04/21 16:47:42 itojun Exp $ */ +/* $OpenBSD: route6.c,v 1.16 2007/05/31 23:17:38 mcbride Exp $ */ /* $KAME: route6.c,v 1.22 2000/12/03 00:54:00 itojun Exp $ */ /* @@ -67,6 +67,21 @@ route6_input(mp, offp, proto) switch (rh->ip6r_type) { #if 0 + /* + * See http://www.secdev.org/conf/IPv6_RH_security-csw07.pdf + * for why IPV6_RTHDR_TYPE_0 is banned here. + * + * We return ICMPv6 parameter problem so that innocent people + * (not an attacker) would notice about the use of IPV6_RTHDR_TYPE_0. + * Since there's no amplification, and ICMPv6 error will be rate- + * controlled, it shouldn't cause any problem. + * If you are concerned about this, you may want to use the following + * code fragment: + * + * case IPV6_RTHDR_TYPE_0: + * m_freem(m); + * return (IPPROTO_DONE); + */ case IPV6_RTHDR_TYPE_0: rhlen = (rh->ip6r_len + 1) << 3; if (rh->ip6r_segleft == 0) |