]> www.infradead.org Git - users/jedix/linux-maple.git/commit
tcp: detect malicious patterns in tcp_collapse_ofo_queue()
authorEric Dumazet <edumazet@google.com>
Mon, 23 Jul 2018 16:28:19 +0000 (09:28 -0700)
committerBrian Maly <brian.maly@oracle.com>
Fri, 14 Sep 2018 03:14:23 +0000 (23:14 -0400)
commit6d3bf29619a7080127524d44b48914862438701c
treecff43376a982ab2f2e1a5b4ee5304705b6154f8e
parent8c71dcef0f0b08c9be7ee4cc21810f56ae7529a6
tcp: detect malicious patterns in tcp_collapse_ofo_queue()

[ Upstream commit 3d4bf93ac12003f9b8e1e2de37fe27983deebdcf ]

In case an attacker feeds tiny packets completely out of order,
tcp_collapse_ofo_queue() might scan the whole rb-tree, performing
expensive copies, but not changing socket memory usage at all.

1) Do not attempt to collapse tiny skbs.
2) Add logic to exit early when too many tiny skbs are detected.

We prefer not doing aggressive collapsing (which copies packets)
for pathological flows, and revert to tcp_prune_ofo_queue() which
will be less expensive.

In the future, we might add the possibility of terminating flows
that are proven to be malicious.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Soheil Hassas Yeganeh <soheil@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(adapted from v4.9.x commit a878681484a0992ee3dfbd7826439951f9f82a69)

Orabug: 28639707
CVE: CVE-2018-5390

Signed-off-by: Shannon Nelson <shannon.nelson@oracle.com>
Reviewed-by: Jack Vogel <jack.vogel@oracle.com>
Signed-off-by: Brian Maly <brian.maly@oracle.com>
net/ipv4/tcp_input.c