ipv6:introduce function to find route for redirect
RFC 4861 says that the IP source address of the Redirect is the same as the current first-hop router for the specified ICMP Destination Address, so the gateway should be taken into consideration when we find the route for redirect. There was once a check in commita6279458c5
("NDISC: Search over all possible rules on receipt of redirect.") and the check went away in commitb94f1c0904
("ipv6: Use icmpv6_notify() to propagate redirect, instead of rt6_redirect()"). The bug is only "exploitable" on layer-2 because the source address of the redirect is checked to be a valid link-local address but it makes spoofing a lot easier in the same L2 domain nonetheless. Thanks very much for Hannes's help. Signed-off-by: Duan Jiong <duanj.fnst@cn.fujitsu.com> Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
60cad4e67b
commit
b55b76b221
@@ -447,7 +447,7 @@ static void esp6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
|
||||
return;
|
||||
|
||||
if (type == NDISC_REDIRECT)
|
||||
ip6_redirect(skb, net, 0, 0);
|
||||
ip6_redirect(skb, net, skb->dev->ifindex, 0);
|
||||
else
|
||||
ip6_update_pmtu(skb, net, info, 0, 0);
|
||||
xfrm_state_put(x);
|
||||
|
Reference in New Issue
Block a user