Received: by 2002:a05:6a10:1287:0:0:0:0 with SMTP id d7csp658936pxv; Thu, 15 Jul 2021 12:43:15 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy5FNWXP5RMM3VT2pceqq0ORNbYRefgkHkAT8wsSu79NozphpkaG6C2sx0bqiszPnY/DYPY X-Received: by 2002:a17:906:2287:: with SMTP id p7mr7342048eja.181.1626378194704; Thu, 15 Jul 2021 12:43:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626378194; cv=none; d=google.com; s=arc-20160816; b=fxDdWB3wrg8Wvnn3s5h93J1fOp5B28gvb3prDc3YsOggrXKmbJIc/n4KaBPqwJFY+/ n3vTshjEqYqtA9IcddarYk0PyajknrMyJN5qpGFVBw3IDUtZGlyOAQNWat2S8SZOyqqq psEPxlGQfIHE+ZhdR8G1Hco6+X3YFxhZWLOKDzqHQO5cm8uvoeVl1nw6yW2bEoe4Rg5T X5PLBx0J9mx8BnEIcouTdHcx18rj96G+4JiRtB/AxVR8U1ZgU9OG4kzgji+4PdU7b3EX /mEB0XMTHDRn4676DOL+gw0ra8mb588tZGa0ffljGUCD0suJB8/eFXkXxIR7CPvZu2Oi 83Bg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=OBwkJ5ZJvy6PW24WV4/tlH7H5x+49CpdAJyPjEB0FrU=; b=BtMSxh2gJitrBDnB/Az25oHRWRQEHKmwjCrlFQBMlsqgMWIGT/SnMpLu9RMelgOMnf BXN3Rk/X1QUZ9twtQAfnefqzPvhpA+r4GAZbHwq8+6fmF0bXnaD598XB8kOAqErPvhu0 F9p3C8H7EwvpMQcoT61hEDKDuAoNGMxmrD3an+agpJefU/bhS4c+5CT1V9Z2/WCKUkGM ZeEoYJMC7qxKcTHWSMAlm68Mrg0v23LrnifdXMj6MJ2XbVGkKZ5bmw1H0JYKQeh4glZ2 rwTg+JTXlgl1FAslHRYAzZ+W1o4B/CSF0v0LLq2weT1o8ROf8X3GLI3H2IWv+YL5nHNI KSng== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=auzPxpK6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id qo10si8266309ejb.393.2021.07.15.12.42.51; Thu, 15 Jul 2021 12:43:14 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=auzPxpK6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344158AbhGOTj7 (ORCPT + 99 others); Thu, 15 Jul 2021 15:39:59 -0400 Received: from mail.kernel.org ([198.145.29.99]:50994 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S244270AbhGOTOk (ORCPT ); Thu, 15 Jul 2021 15:14:40 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id CCFDA613CC; Thu, 15 Jul 2021 19:10:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1626376206; bh=tMnwuOqsKetrJOZHCxfof29wQdNfyrd0hr/fLSioJSQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=auzPxpK6R20XQimSN/1Zm01YbtAs9nFYiSBcWxSKKzBKM9O0eXRgZYEFvyUhPz8Gn MMSIxKy5tJ0T6zjqKMBQFGtXZ/Md+QV5NpO13fV0FOFPUc7/hX91By6/8o4kgAdA6G I3I/Mb7UYdbHls0/bPsdTujk6W+HAj7DmYm02Aw8= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ilja Van Sprundel , Marcelo Ricardo Leitner , "David S. Miller" , Sasha Levin Subject: [PATCH 5.13 173/266] sctp: add size validation when walking chunks Date: Thu, 15 Jul 2021 20:38:48 +0200 Message-Id: <20210715182642.690271838@linuxfoundation.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20210715182613.933608881@linuxfoundation.org> References: <20210715182613.933608881@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Marcelo Ricardo Leitner [ Upstream commit 50619dbf8db77e98d821d615af4f634d08e22698 ] The first chunk in a packet is ensured to be present at the beginning of sctp_rcv(), as a packet needs to have at least 1 chunk. But the second one, may not be completely available and ch->length can be over uninitialized memory. Fix here is by only trying to walk on the next chunk if there is enough to hold at least the header, and then proceed with the ch->length validation that is already there. Reported-by: Ilja Van Sprundel Signed-off-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller Signed-off-by: Sasha Levin --- net/sctp/input.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/sctp/input.c b/net/sctp/input.c index 8924e2e142c8..f72bff93745c 100644 --- a/net/sctp/input.c +++ b/net/sctp/input.c @@ -1247,7 +1247,7 @@ static struct sctp_association *__sctp_rcv_walk_lookup(struct net *net, ch = (struct sctp_chunkhdr *)ch_end; chunk_num++; - } while (ch_end < skb_tail_pointer(skb)); + } while (ch_end + sizeof(*ch) < skb_tail_pointer(skb)); return asoc; } -- 2.30.2