lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <4F5E133E.4040308@network-box.com> Date: Mon, 12 Mar 2012 23:16:14 +0800 From: Nick Jones <nick.jones@...work-box.com> To: netdev@...r.kernel.org Subject: [PATCH net-next] Allocate unique metrics for icmp6 packets to prevent tainting dst metrics The generation of an icmp6 packet, targeted to a specific desination address, will cause the shared metrics of the ip6_dst and inetpeer of that address to be tainted with the hoplimit value 255. All packets, icmp6 or otherwise, will have this hoplimit value, and if the destination is a router, not even advertisements specifying a new hoplimit value will have any effect due to the way ip6_dst_hoplimit works. By allocating a unique metrics array for the icmp6 packet, the shared metrics will not be tainted. Signed-off-by: Nick Jones <nick.jones@...work-box.com> --- First follow up after discussion at: http://www.spinics.net/lists/netdev/msg191052.html net/ipv6/route.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/net/ipv6/route.c b/net/ipv6/route.c index 92be12b..209d156 100644 --- a/net/ipv6/route.c +++ b/net/ipv6/route.c @@ -1117,6 +1117,14 @@ struct dst_entry *icmp6_dst_alloc(struct net_device *dev, rt->rt6i_dst.addr = fl6->daddr; rt->rt6i_dst.plen = 128; rt->rt6i_idev = idev; + + u32 *metrics = kzalloc(sizeof(u32) * RTAX_MAX, GFP_ATOMIC); + if (unlikely(!metrics)) { + in6_dev_put(idev); + dst_free(&rt->dst); + return ERR_CAST(-ENOMEM); + } + dst_init_metrics(&rt->dst, metrics, 0); dst_metric_set(&rt->dst, RTAX_HOPLIMIT, 255); spin_lock_bh(&icmp6_dst_lock); -- 1.7.1 -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists