ipv6: addrconf: validate new MTU before applying it
authorMarcelo Leitner <mleitner@redhat.com>
Mon, 23 Feb 2015 14:17:13 +0000 (11:17 -0300)
committerWilly Tarreau <w@1wt.eu>
Sat, 5 Dec 2015 23:49:02 +0000 (00:49 +0100)
commit237dfc5b712719a8be1dd9d64726428981261759
tree53497143b5fd65f13466ea4575e8936bb4f758f7
parent37b602d262f971a3b4c88a2f8db087f173f4d179
ipv6: addrconf: validate new MTU before applying it

commit 77751427a1ff25b27d47a4c36b12c3c8667855ac upstream.

Currently we don't check if the new MTU is valid or not and this allows
one to configure a smaller than minimum allowed by RFCs or even bigger
than interface own MTU, which is a problem as it may lead to packet
drops.

If you have a daemon like NetworkManager running, this may be exploited
by remote attackers by forging RA packets with an invalid MTU, possibly
leading to a DoS. (NetworkManager currently only validates for values
too small, but not for too big ones.)

The fix is just to make sure the new value is valid. That is, between
IPV6_MIN_MTU and interface's MTU.

Note that similar check is already performed at
ndisc_router_discovery(), for when kernel itself parses the RA.

Signed-off-by: Marcelo Ricardo Leitner <mleitner@redhat.com>
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
[bwh: Backported to 2.6.32:
 - Add a strategy for the sysctl as we don't get a default strategy
 - Adjust context, spacing]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Willy Tarreau <w@1wt.eu>
net/ipv6/addrconf.c