Files
linux/include/net
hannes@stressinduktion.org c91f81773c ipv6: protect skb->sk accesses from recursive dereference inside the stack
[ Upstream commit f60e5990d9 ]

We should not consult skb->sk for output decisions in xmit recursion
levels > 0 in the stack. Otherwise local socket settings could influence
the result of e.g. tunnel encapsulation process.

ipv6 does not conform with this in three places:

1) ip6_fragment: we do consult ipv6_npinfo for frag_size

2) sk_mc_loop in ipv6 uses skb->sk and checks if we should
   loop the packet back to the local socket

3) ip6_skb_dst_mtu could query the settings from the user socket and
   force a wrong MTU

Furthermore:
In sk_mc_loop we could potentially land in WARN_ON(1) if we use a
PF_PACKET socket ontop of an IPv6-backed vxlan device.

Reuse xmit_recursion as we are currently only interested in protecting
tunnel devices.

Cc: Jiri Pirko <jiri@resnulli.us>
Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-04-29 10:31:46 +02:00
..
2013-12-28 17:02:46 -05:00
2012-07-19 10:43:03 -07:00
2013-11-07 19:28:58 -05:00
2013-12-06 07:24:39 +01:00
2013-01-27 22:46:33 -05:00
2013-10-08 23:19:24 -04:00
2014-08-14 09:38:23 +08:00
2008-06-11 21:00:38 -07:00
2005-04-16 15:20:36 -07:00
2005-04-16 15:20:36 -07:00
2014-01-03 20:56:48 -05:00
2009-01-06 11:38:15 -07:00
2014-10-05 14:52:20 -07:00
2014-08-14 09:38:23 +08:00
2012-08-06 13:40:47 -07:00
2014-01-21 18:05:04 -08:00
2012-05-16 15:17:08 -04:00