Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp688736pxb; Mon, 25 Oct 2021 16:42:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxuyrIWyTQh88fBFvspBPIVS7grbn0AbKT9fv4OGUk8WnHFUc2/Xz5s5M1nzYG2wFYCM1VA X-Received: by 2002:a05:6402:274f:: with SMTP id z15mr9533525edd.306.1635205319839; Mon, 25 Oct 2021 16:41:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635205319; cv=none; d=google.com; s=arc-20160816; b=xleA7gOML0kkPt3sCeYWPYSuUA92iatu5jWsPIxOhN5onNl4WGoBBvEAZOEOguF56c 92pBDRtbxgyI8PJjMti3XSZ6zVXaN9QCdaq6vTsG3W2p5t0sgvaE/DZ8Gyfsxh27umZi dh5qYIXj49lF7VTRHZbH2l7lghh+YcGAN5BzMvcrHLgBQPy2z+PzxgmjGYqR9g+7Y4Wa AnPQDTWY4Ci17yDVXv8w2pBv9xZxCA75+Wt0n+iRcbikyn2Fgx6A9oigG477Y3MffnrW wBIMkfRXvZNCmpNGt41u5YodU2cS7JoJEOg5QjOkiFN1IODSrOgQSXnkRRJquSEtGswf 2DxA== 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=idIqflxa7T2tNJthp7PNELs1EpUU1O3K9JziNS6DWOY=; b=r6vOaNNK7+9/JfakovBe45nM5omwB/cbyST2V8lzlK/C2kRLEvAjuz7nxZk+lixv9W NXiMBNnAeJZdRWpcW0h9t2nW6IL0slH0Qi+ZW63LxVDSDPteCq9t0ETaW4xl4TmpqbPJ 1lPLXMT8v618hL0L91EBFt9z+DGTt48EwzR4nVuBZ4ehJde5fI6BdbKn1JLslpmE1GC5 x7zRmmtf58HjnPCqmoCqkJbVSMnZZWneQ1mxruL0V8xwOMVB/7VnK07BrzjphCXn8I9i 21T3Z3DyMIZa4FolSiwSxEwpY6DZEfI6QK2jJRN0tLCUMKYUItWKFQJOVmgHkkDJpx1e +U8Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=AyXOP8UX; 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 do17si3180154ejc.696.2021.10.25.16.41.25; Mon, 25 Oct 2021 16:41:59 -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=AyXOP8UX; 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 S235831AbhJYTdI (ORCPT + 99 others); Mon, 25 Oct 2021 15:33:08 -0400 Received: from mail.kernel.org ([198.145.29.99]:48424 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235581AbhJYT2s (ORCPT ); Mon, 25 Oct 2021 15:28:48 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 569926115A; Mon, 25 Oct 2021 19:25:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1635189912; bh=l6yUpv24CZ2qGfC2ClqOhdk8gfzcGesEs6/bflsTob0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=AyXOP8UXJkVysL2RGjXL+CEwAeol7dFcJA29nQfuX1b9ee8CFsvdzm5Fll4adL7gv 7Qe53S5RkCC8XN+R6Ph0XEE/iiQaC9pQqavYYhAcz56X8vuffkZhb5T0IG0iSvEU1Z AGxBTAfGa0FTI44Vhzf2vhcGB4JRi/oWTgbM5w+g= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Xiaolong Huang , Arnd Bergmann , Jakub Kicinski Subject: [PATCH 4.19 24/37] isdn: cpai: check ctr->cnr to avoid array index out of bound Date: Mon, 25 Oct 2021 21:14:49 +0200 Message-Id: <20211025190933.102409577@linuxfoundation.org> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211025190926.680827862@linuxfoundation.org> References: <20211025190926.680827862@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: Xiaolong Huang commit 1f3e2e97c003f80c4b087092b225c8787ff91e4d upstream. The cmtp_add_connection() would add a cmtp session to a controller and run a kernel thread to process cmtp. __module_get(THIS_MODULE); session->task = kthread_run(cmtp_session, session, "kcmtpd_ctr_%d", session->num); During this process, the kernel thread would call detach_capi_ctr() to detach a register controller. if the controller was not attached yet, detach_capi_ctr() would trigger an array-index-out-bounds bug. [ 46.866069][ T6479] UBSAN: array-index-out-of-bounds in drivers/isdn/capi/kcapi.c:483:21 [ 46.867196][ T6479] index -1 is out of range for type 'capi_ctr *[32]' [ 46.867982][ T6479] CPU: 1 PID: 6479 Comm: kcmtpd_ctr_0 Not tainted 5.15.0-rc2+ #8 [ 46.869002][ T6479] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-2 04/01/2014 [ 46.870107][ T6479] Call Trace: [ 46.870473][ T6479] dump_stack_lvl+0x57/0x7d [ 46.870974][ T6479] ubsan_epilogue+0x5/0x40 [ 46.871458][ T6479] __ubsan_handle_out_of_bounds.cold+0x43/0x48 [ 46.872135][ T6479] detach_capi_ctr+0x64/0xc0 [ 46.872639][ T6479] cmtp_session+0x5c8/0x5d0 [ 46.873131][ T6479] ? __init_waitqueue_head+0x60/0x60 [ 46.873712][ T6479] ? cmtp_add_msgpart+0x120/0x120 [ 46.874256][ T6479] kthread+0x147/0x170 [ 46.874709][ T6479] ? set_kthread_struct+0x40/0x40 [ 46.875248][ T6479] ret_from_fork+0x1f/0x30 [ 46.875773][ T6479] Signed-off-by: Xiaolong Huang Acked-by: Arnd Bergmann Link: https://lore.kernel.org/r/20211008065830.305057-1-butterflyhuangxx@gmail.com Signed-off-by: Jakub Kicinski Signed-off-by: Greg Kroah-Hartman --- drivers/isdn/capi/kcapi.c | 5 +++++ 1 file changed, 5 insertions(+) --- a/drivers/isdn/capi/kcapi.c +++ b/drivers/isdn/capi/kcapi.c @@ -565,6 +565,11 @@ int detach_capi_ctr(struct capi_ctr *ctr ctr_down(ctr, CAPI_CTR_DETACHED); + if (ctr->cnr < 1 || ctr->cnr - 1 >= CAPI_MAXCONTR) { + err = -EINVAL; + goto unlock_out; + } + if (capi_controller[ctr->cnr - 1] != ctr) { err = -EINVAL; goto unlock_out;