Received: by 2002:a05:6a10:5bc5:0:0:0:0 with SMTP id os5csp730441pxb; Mon, 25 Oct 2021 17:39:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJypuVD3icRkIssy7XRDal8i6m3uSQWwHutpZ85EDDcLfY3TXfYRmh2l8VfcvPHmTYbcmVUG X-Received: by 2002:aa7:d54e:: with SMTP id u14mr30636798edr.2.1635208771968; Mon, 25 Oct 2021 17:39:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1635208771; cv=none; d=google.com; s=arc-20160816; b=Ga9f29uplDmbm295mrgegs2S/SQIHGETSQlJRJBkiXQTQTkHf4LkOhwEufEa1bf3kv vnRioEyhGiukDq0fuUJ5lg3G9Fq5bUsA31J3vL/WzO9QbleyGQUavggtEmnRrhUcpXO+ lu7F5lEZ6H0EvKxqbV3YejrPDRXMDqC2yituA9OLcAwwBsm8jomEa38Y0I2sOszAhzu1 0m/8oVaVxYKiLtyR3cb7AjgkJ57l97fYV8btB9Y5cG4jlqZdDBSMz1axS87EIqwy9dgw cAX4Q/kgQo6v/w5U1yVWF+loeGMMIli2zkiEGjS0gsgk3sevbZuMZtQo0daTXSHyYQ3O hTgA== 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=6rA6Mx8hbhqiJmVAdvnInXnNUbwBrDgK5QMnxmPeqVY=; b=t9zCs9MqbPV60dPCfLcM8YUgjpa1wjBkV2ICSLJ00cFzkh0fjBRdpOa6iVFGqiV68a sKMS7sYqwdATfKBg7/4rhw78orRT0boVS5a0HFF2jravkiCsOSPe/29T4WsKXzE6hP7t flvvYAGpKWYHgOexK9QavDlwNQV+KAg9TRUlOTShJrakQ2MXjqphaESL3Egos/9/J0om iaVxTMRtv2VQmzAsRYvT6egFGOB8GQ26HbMbtmTJa2wiWpfo2T0wL56Xk+ZUAXsFBQw7 3jn/U8JqQA+zKLebQ2z093t/rZQ8qQVCIhJ6yA5Pt5dsFJENWmJ95GnIFBhZQ/sZymjR 0b8A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=mW2qEQVp; 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 m25si13219048ejb.570.2021.10.25.17.39.08; Mon, 25 Oct 2021 17:39:31 -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=mW2qEQVp; 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 S236024AbhJYT4H (ORCPT + 99 others); Mon, 25 Oct 2021 15:56:07 -0400 Received: from mail.kernel.org ([198.145.29.99]:41568 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238682AbhJYTvF (ORCPT ); Mon, 25 Oct 2021 15:51:05 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 7BB9B603E5; Mon, 25 Oct 2021 19:43:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1635190982; bh=IWpy3qXsnx98AkyFL5J1pkZOcZWvBFjI+MP1nGSc7nU=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=mW2qEQVp47NR1VDUowssC5pwXlGh9oHAK2dCtSxPIcKlEqgn/fdUF4m7YHZgmJCHq 3l0jNOOLEZ8d4M9QYiwVx6Nxg8L7e1vYbXdhDfvoMWzMwXdHuSyT6IX60KXuphS3HY LZCUTk5AOohHKCuc6i7Xm/vQx6w5wLMuJ7GyH/3w= 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 5.14 117/169] isdn: cpai: check ctr->cnr to avoid array index out of bound Date: Mon, 25 Oct 2021 21:14:58 +0200 Message-Id: <20211025191032.780376265@linuxfoundation.org> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211025191017.756020307@linuxfoundation.org> References: <20211025191017.756020307@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 @@ -480,6 +480,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;