From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Miller Subject: Re: [PATCH net] inet: frag: enforce memory limits earlier Date: Tue, 31 Jul 2018 14:44:26 -0700 (PDT) Message-ID: <20180731.144426.1299313303695149125.davem@davemloft.net> References: <20180731030911.248637-1-edumazet@google.com> Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Cc: netdev@vger.kernel.org, jannh@google.com, eric.dumazet@gmail.com, fw@strlen.de, posk@google.com, pabeni@redhat.com To: edumazet@google.com Return-path: Received: from shards.monkeyblade.net ([23.128.96.9]:59716 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727076AbeGaX0s (ORCPT ); Tue, 31 Jul 2018 19:26:48 -0400 In-Reply-To: <20180731030911.248637-1-edumazet@google.com> Sender: netdev-owner@vger.kernel.org List-ID: From: Eric Dumazet Date: Mon, 30 Jul 2018 20:09:11 -0700 > 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 > Reported-by: Jann Horn Applied and queued up for -stable.