]> git.baikalelectronics.ru Git - kernel.git/commit
flow_dissector: Add limit for number of headers to dissect
authorTom Herbert <tom@quantonium.net>
Fri, 1 Sep 2017 21:04:12 +0000 (14:04 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 5 Sep 2017 18:40:08 +0000 (11:40 -0700)
commitd33e6917999f602054e076bb4ab2890ccf87556a
tree47563e759a4e046e163078c1898949814416c1cf
parent24f62265d245cf65ee88075fe7b9523bef7cbf7e
flow_dissector: Add limit for number of headers to dissect

In flow dissector there are no limits to the number of nested
encapsulations or headers that might be dissected which makes for a
nice DOS attack. This patch sets a limit of the number of headers
that flow dissector will parse.

Headers includes network layer headers, transport layer headers, shim
headers for encapsulation, IPv6 extension headers, etc. The limit for
maximum number of headers to parse has be set to fifteen to account for
a reasonable number of encapsulations, extension headers, VLAN,
in a packet. Note that this limit does not supercede the STOP_AT_*
flags which may stop processing before the headers limit is reached.

Reported-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
Signed-off-by: Tom Herbert <tom@quantonium.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/flow_dissector.c