]> www.infradead.org Git - users/jedix/linux-maple.git/commit
inet: frag: enforce memory limits earlier
authorEric Dumazet <edumazet@google.com>
Tue, 31 Jul 2018 03:09:11 +0000 (20:09 -0700)
committerChuck Anderson <chuck.anderson@oracle.com>
Mon, 13 Aug 2018 22:51:43 +0000 (15:51 -0700)
commiteb58f57ef30f6ffc5ca5a20a4ca98742bedd786e
tree67c2f2c77afd0b439a5bdac354182ba8208c3620
parent0b37b2d5fac620946947f5b25b1dec493c55e453
inet: frag: enforce memory limits earlier

[ Upstream commit 56e2c94f055d328f5f6b0a5c1721cca2f2d4e0a1 ]

We currently check current frags memory usage only when
a new frag queue is created. This allows attackers to first
consume the memory budget (default : 4 MB) creating thousands
of frag queues, then sending tiny skbs to exceed high_thresh
limit by 2 to 3 order of magnitude.

Note that before commit 648700f76b03 ("inet: frags: use rhashtables
for reassembly units"), work queue could be starved under DOS,
getting no cpu cycles.
After commit 648700f76b03, only the per frag queue timer can eventually
remove an incomplete frag queue and its skbs.

Fixes: b13d3cbfb8e8 ("inet: frag: move eviction of queues to work queue")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: Jann Horn <jannh@google.com>
Cc: Florian Westphal <fw@strlen.de>
Cc: Peter Oskolkov <posk@google.com>
Cc: Paolo Abeni <pabeni@redhat.com>
Acked-by: Florian Westphal <fw@strlen.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit df30bfccc463082cfc2a5b164e5590403f16af94)

Orabug: 28450977
Signed-off-by: Dhaval Giani <dhaval.giani@oracle.com>
net/ipv4/inet_fragment.c