Commit eb4890059155d5de636acba5b4421cb826d6fa4f

Authored by Hagen Paul Pfeifer
Committed by Greg Kroah-Hartman
1 parent 9e4cc1ed83

ipv6: stop sending PTB packets for MTU < 1280

[ Upstream commit 9d289715eb5c252ae15bd547cb252ca547a3c4f2 ]

Reduce the attack vector and stop generating IPv6 Fragment Header for
paths with an MTU smaller than the minimum required IPv6 MTU
size (1280 byte) - called atomic fragments.

See IETF I-D "Deprecating the Generation of IPv6 Atomic Fragments" [1]
for more information and how this "feature" can be misused.

[1] https://tools.ietf.org/html/draft-ietf-6man-deprecate-atomfrag-generation-00

Signed-off-by: Fernando Gont <fgont@si6networks.com>
Signed-off-by: Hagen Paul Pfeifer <hagen@jauu.net>
Acked-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>

Showing 1 changed file with 2 additions and 5 deletions Side-by-side Diff

... ... @@ -1150,12 +1150,9 @@
1150 1150 struct net *net = dev_net(dst->dev);
1151 1151  
1152 1152 rt6->rt6i_flags |= RTF_MODIFIED;
1153   - if (mtu < IPV6_MIN_MTU) {
1154   - u32 features = dst_metric(dst, RTAX_FEATURES);
  1153 + if (mtu < IPV6_MIN_MTU)
1155 1154 mtu = IPV6_MIN_MTU;
1156   - features |= RTAX_FEATURE_ALLFRAG;
1157   - dst_metric_set(dst, RTAX_FEATURES, features);
1158   - }
  1155 +
1159 1156 dst_metric_set(dst, RTAX_MTU, mtu);
1160 1157 rt6_update_expires(rt6, net->ipv6.sysctl.ip6_rt_mtu_expires);
1161 1158 }