linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>,
	Ilja Van Sprundel <ivansprundel@ioactive.com>,
	"David S . Miller" <davem@davemloft.net>,
	Sasha Levin <sashal@kernel.org>,
	linux-sctp@vger.kernel.org, netdev@vger.kernel.org
Subject: [PATCH AUTOSEL 4.19 54/55] sctp: add size validation when walking chunks
Date: Tue,  6 Jul 2021 07:26:37 -0400	[thread overview]
Message-ID: <20210706112638.2065023-54-sashal@kernel.org> (raw)
In-Reply-To: <20210706112638.2065023-1-sashal@kernel.org>

From: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>

[ 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 <ivansprundel@ioactive.com>
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 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 e17c8359571c..203aaefd8d04 100644
--- a/net/sctp/input.c
+++ b/net/sctp/input.c
@@ -1204,7 +1204,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


  parent reply	other threads:[~2021-07-06 12:02 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-06 11:25 [PATCH AUTOSEL 4.19 01/55] drm/etnaviv: fix NULL check before some freeing functions is not needed Sasha Levin
2021-07-06 11:25 ` [PATCH AUTOSEL 4.19 02/55] drm/mxsfb: Don't select DRM_KMS_FB_HELPER Sasha Levin
2021-07-06 11:25 ` [PATCH AUTOSEL 4.19 03/55] drm/zte: " Sasha Levin
2021-07-06 11:25 ` [PATCH AUTOSEL 4.19 04/55] drm/amd/amdgpu/sriov disable all ip hw status by default Sasha Levin
2021-07-06 11:25 ` [PATCH AUTOSEL 4.19 05/55] net: pch_gbe: Use proper accessors to BE data in pch_ptp_match() Sasha Levin
2021-07-06 11:25 ` [PATCH AUTOSEL 4.19 06/55] drm/amd/display: fix use_max_lb flag for 420 pixel formats Sasha Levin
2021-07-06 11:25 ` [PATCH AUTOSEL 4.19 07/55] hugetlb: clear huge pte during flush function on mips platform Sasha Levin
2021-07-06 11:25 ` [PATCH AUTOSEL 4.19 08/55] atm: iphase: fix possible use-after-free in ia_module_exit() Sasha Levin
2021-07-06 11:25 ` [PATCH AUTOSEL 4.19 09/55] mISDN: fix possible use-after-free in HFC_cleanup() Sasha Levin
2021-07-06 11:25 ` [PATCH AUTOSEL 4.19 10/55] atm: nicstar: Fix possible use-after-free in nicstar_cleanup() Sasha Levin
2021-07-06 11:25 ` [PATCH AUTOSEL 4.19 11/55] net: Treat __napi_schedule_irqoff() as __napi_schedule() on PREEMPT_RT Sasha Levin
2021-07-06 11:25 ` [PATCH AUTOSEL 4.19 12/55] reiserfs: add check for invalid 1st journal block Sasha Levin
2021-07-06 11:25 ` [PATCH AUTOSEL 4.19 13/55] drm/virtio: Fixes a potential NULL pointer dereference on probe failure Sasha Levin
2021-07-06 11:25 ` [PATCH AUTOSEL 4.19 14/55] drm/virtio: Fix double free " Sasha Levin
2021-07-06 11:25 ` [PATCH AUTOSEL 4.19 15/55] udf: Fix NULL pointer dereference in udf_symlink function Sasha Levin
2021-07-06 11:25 ` [PATCH AUTOSEL 4.19 16/55] e100: handle eeprom as little endian Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 17/55] clk: renesas: r8a77995: Add ZA2 clock Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 18/55] clk: tegra: Ensure that PLLU configuration is applied properly Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 19/55] ipv6: use prandom_u32() for ID generation Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 20/55] RDMA/cxgb4: Fix missing error code in create_qp() Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 21/55] dm space maps: don't reset space map allocation cursor when committing Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 22/55] pinctrl: mcp23s08: fix race condition in irq handler Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 23/55] ice: set the value of global config lock timeout longer Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 24/55] virtio_net: Remove BUG() to avoid machine dead Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 25/55] net: bcmgenet: check return value after calling platform_get_resource() Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 26/55] net: mvpp2: " Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 27/55] net: micrel: " Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 28/55] net: moxa: Use devm_platform_get_and_ioremap_resource() Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 29/55] fjes: check return value after calling platform_get_resource() Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 30/55] selinux: use __GFP_NOWARN with GFP_NOWAIT in the AVC Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 31/55] xfrm: Fix error reporting in xfrm_state_construct Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 32/55] wlcore/wl12xx: Fix wl12xx get_mac error if device is in ELP Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 33/55] wl1251: Fix possible buffer overflow in wl1251_cmd_scan Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 34/55] cw1200: add missing MODULE_DEVICE_TABLE Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 35/55] net: fix mistake path for netdev_features_strings Sasha Levin
2021-07-15  8:45   ` Pavel Machek
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 36/55] rtl8xxxu: Fix device info for RTL8192EU devices Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 37/55] MIPS: add PMD table accounting into MIPS'pmd_alloc_one Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 38/55] atm: nicstar: use 'dma_free_coherent' instead of 'kfree' Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 39/55] atm: nicstar: register the interrupt handler in the right place Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 40/55] vsock: notify server to shutdown when client has pending signal Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 41/55] RDMA/rxe: Don't overwrite errno from ib_umem_get() Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 42/55] iwlwifi: mvm: don't change band on bound PHY contexts Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 43/55] iwlwifi: pcie: free IML DMA memory allocation Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 44/55] sfc: avoid double pci_remove of VFs Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 45/55] sfc: error code if SRIOV cannot be disabled Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 46/55] wireless: wext-spy: Fix out-of-bounds warning Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 47/55] media, bpf: Do not copy more entries than user space requested Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 48/55] net: ip: avoid OOM kills with large UDP sends over loopback Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 49/55] RDMA/cma: Fix rdma_resolve_route() memory leak Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 50/55] Bluetooth: Fix the HCI to MGMT status conversion table Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 51/55] Bluetooth: Shutdown controller after workqueues are flushed or cancelled Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 52/55] Bluetooth: btusb: fix bt fiwmare downloading failure issue for qca btsoc Sasha Levin
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 53/55] sctp: validate from_addr_param return Sasha Levin
2021-07-06 11:26 ` Sasha Levin [this message]
2021-07-06 11:26 ` [PATCH AUTOSEL 4.19 55/55] MIPS: set mips32r5 for virt extensions Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210706112638.2065023-54-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=davem@davemloft.net \
    --cc=ivansprundel@ioactive.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sctp@vger.kernel.org \
    --cc=marcelo.leitner@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).