Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp866836pxb; Tue, 1 Feb 2022 12:04:09 -0800 (PST) X-Google-Smtp-Source: ABdhPJyg6hHRsu9/UENrwHmIf9B1t4eqQ/kipBckJdqZEcS1wtTVM4gc3dhARyu4hUKNHXNrcJHM X-Received: by 2002:a05:6a00:22c9:: with SMTP id f9mr26232894pfj.79.1643745849171; Tue, 01 Feb 2022 12:04:09 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1643745849; cv=none; d=google.com; s=arc-20160816; b=K1PHZkk+S8iS9HfomViPIpc+IlSncFoDfLgmm9j49Lktu403/4ofgSyYbm/M+HO0IW cjNZqxJlyN5U5FA+3pImzEapFA34lthEB6ZKIxvWG/Wl61sW2N7Nf2xsy2+4UGjRChKy 9Zwpsz5FPpi0MAdwJkDR9ESECDfhDLmNxeJYykRePaNRlUTr7wvZ4IlxSmehxHbwohfC pyfbyP+W5CGohZEr1Lg3kN8EaeA2jVnhgyVkj3qZHatJpU4nnuHigmtbtp2WkkPGARIB 50KgIJPa1neRdQp5FO8k9e/rwDv3N1sw6PKcUiqA4Sshdbqnfnw1/isFJLd3C2hFZHL7 2lWQ== 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=7IpeJcPq/tDknwDDEEtJ7XCfN9WPwCQbJhe+nCk6i6Q=; b=W3NANEwQlnJanJxQiuSZ1TDGf+TxF8PybOP7gUH85zYTAPmUrDZnOf+oKOOEwb4KWL FLJaQ2JBNQkCPms4IungJtsusQZrCY/uvXa8NMENzRZrjjijZAn9o6q/2bYlOSs3A0Ml b3j3yIrWkofETmXTqjYVLclUz3ZLJQXd8Q6IgU0e3cnsCDIlXXzVV717+LOI0PWHK2W+ UWPP5rT4/iZL5WAhHzhDz5IKIDfa1iWD42cuE8zYLXNMqAGmKZfMYBTEU17CKVhTa65T VHhFNaPxe84+yZE/Tk99Ppxgx0Myw/IH+GT2NwHpCqOhkRgI5ZUTTdYIqC0BICWTm4kX Av9w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b="conP/EIu"; 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 p5si17076860pls.250.2022.02.01.12.03.57; Tue, 01 Feb 2022 12:04:09 -0800 (PST) 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="conP/EIu"; 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 S1377050AbiAaLRd (ORCPT + 99 others); Mon, 31 Jan 2022 06:17:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44620 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1377292AbiAaLJx (ORCPT ); Mon, 31 Jan 2022 06:09:53 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E9570C0613B2; Mon, 31 Jan 2022 03:06:59 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id A8704B82A4E; Mon, 31 Jan 2022 11:06:58 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D603CC340E8; Mon, 31 Jan 2022 11:06:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1643627217; bh=dq3UKIv6Kj7DEP5efr5OSdt9hjQc0Unsi01ogKeSj9Y=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=conP/EIuFByRKRKDEwUy0yjEgfOiY5kbTLLQRl0CPNA/YiwsttSL6MFn5HniTXEVk 3Z8LwTbJeOC5lFnrYANCiO03f94YAfDiT14SU1WMi4129fuM5pNDpQpEwvQYmWAN7l udgY61EJi4q4c5Q8E6B30rBYiU4018n88rC4pNWU= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, "Naveen N. Rao" , Daniel Borkmann , Michael Ellerman Subject: [PATCH 5.15 012/171] bpf: Guard against accessing NULL pt_regs in bpf_get_task_stack() Date: Mon, 31 Jan 2022 11:54:37 +0100 Message-Id: <20220131105230.420734603@linuxfoundation.org> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20220131105229.959216821@linuxfoundation.org> References: <20220131105229.959216821@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: Naveen N. Rao commit b992f01e66150fc5e90be4a96f5eb8e634c8249e upstream. task_pt_regs() can return NULL on powerpc for kernel threads. This is then used in __bpf_get_stack() to check for user mode, resulting in a kernel oops. Guard against this by checking return value of task_pt_regs() before trying to obtain the call chain. Fixes: fa28dcb82a38f8 ("bpf: Introduce helper bpf_get_task_stack()") Cc: stable@vger.kernel.org # v5.9+ Signed-off-by: Naveen N. Rao Acked-by: Daniel Borkmann Signed-off-by: Michael Ellerman Link: https://lore.kernel.org/r/d5ef83c361cc255494afd15ff1b4fb02a36e1dcf.1641468127.git.naveen.n.rao@linux.vnet.ibm.com Signed-off-by: Greg Kroah-Hartman --- kernel/bpf/stackmap.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) --- a/kernel/bpf/stackmap.c +++ b/kernel/bpf/stackmap.c @@ -525,13 +525,14 @@ BPF_CALL_4(bpf_get_task_stack, struct ta u32, size, u64, flags) { struct pt_regs *regs; - long res; + long res = -EINVAL; if (!try_get_task_stack(task)) return -EFAULT; regs = task_pt_regs(task); - res = __bpf_get_stack(regs, task, NULL, buf, size, flags); + if (regs) + res = __bpf_get_stack(regs, task, NULL, buf, size, flags); put_task_stack(task); return res;