Received: by 2002:a05:6a10:a852:0:0:0:0 with SMTP id d18csp403133pxy; Wed, 5 May 2021 05:12:33 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwSrrsjhOqzbrwAYAkq39tdfcw/qOMpjAtoNz63y05s2zyiWKhmqRlQPe9B8Ry5DZXk2pmi X-Received: by 2002:a17:902:8ec1:b029:e9:998d:91f3 with SMTP id x1-20020a1709028ec1b02900e9998d91f3mr30982039plo.59.1620216753716; Wed, 05 May 2021 05:12:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620216753; cv=none; d=google.com; s=arc-20160816; b=nQU1DZa8kVIYxkLh5vgZiE/QsktCoqYJB4kxTNhh5WV1pey2LDuYaZUpwLBwBkhKz6 AAZA7nnCD00PqdtamT1Dj4pmlWvLumG0If1UT5e0RN/GG3Sc4geQNoIaxatpgEm+5Wfy Mi2Yso3RTA8CtGeE9oVl09MzbhA4QJXRXt1W/o45w3uyy6boc44i+16Stzdamo2Bav4J qgyjfoQ/Qw09QQmtINAsp7+0zaRwhWcvgqbE5G9EEz+c8hxJPoqtepe2wfYJH90YFvFy +y6gOBaXhaeYkRle8/YbBgBc2uF4hhvsqSmrdit8teOncJck2amMErG5hkbQCi1DKOsm 0g9Q== 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=xnnAOl3Zyx1Syowzcdxz/2GA9VDdBxbw+6voX5xnwZc=; b=zQhdxWABgLH9WdZUe0Nx6/2m+eejhdFprW69vDSi2dHhI/IeFhqT0Mb2TjdeLtQF5J c1gJy1B6GUBX9zOnoUsS7h4uTSYf2U9qV/4+WhWJPsUo6hANWndzgF/Nfsf3vEJSneN3 uEhhD7CCuBqtw8Zhbtm/rEC9LCsJqw1X1r48uIZOgVcS0t3N9Ga6VynDI1qxb9OznZ/H NsjfpoVq8jiomq58thPg2/mhSJQ/ZYi0sXdKqGzdUVADAjC3rP5AehP6wH0MSsGQCeIv CTje/++nOSWgSaYoznP+wDE21ke8pQvTOwooAy3wCpkqQR9gvsXIaq0EMo6yr6gw7tXn auBg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=UNkQsYq9; 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 a2si7380885plm.269.2021.05.05.05.12.20; Wed, 05 May 2021 05:12:33 -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=UNkQsYq9; 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 S233308AbhEEMJy (ORCPT + 99 others); Wed, 5 May 2021 08:09:54 -0400 Received: from mail.kernel.org ([198.145.29.99]:48666 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233659AbhEEMIX (ORCPT ); Wed, 5 May 2021 08:08:23 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 0737A613B3; Wed, 5 May 2021 12:07:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620216447; bh=YdN8nf4/yTkdmCszrFhJ7JJmf9Gp8987kUN657HMkGw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UNkQsYq9jsLURITNpu0yYtszQGkuAejYk1UU8LPiE6c9DMD6eXG0bWU/gdRR5wuzF uJXHVpK9kJU3FaO6lSyRcirv09p1FwcFMrEP/siuA038DmNx+Kn2DMuhurwG1u36NO /0Zts3xzFVjrA3HlhB2MYCLYoY2cHPu3h6wuLSaA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ondrej Mosnacek , "Peter Zijlstra (Intel)" , Paul Moore Subject: [PATCH 5.10 29/29] perf/core: Fix unconditional security_locked_down() call Date: Wed, 5 May 2021 14:05:32 +0200 Message-Id: <20210505112327.176951498@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210505112326.195493232@linuxfoundation.org> References: <20210505112326.195493232@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: Ondrej Mosnacek commit 08ef1af4de5fe7de9c6d69f1e22e51b66e385d9b upstream. Currently, the lockdown state is queried unconditionally, even though its result is used only if the PERF_SAMPLE_REGS_INTR bit is set in attr.sample_type. While that doesn't matter in case of the Lockdown LSM, it causes trouble with the SELinux's lockdown hook implementation. SELinux implements the locked_down hook with a check whether the current task's type has the corresponding "lockdown" class permission ("integrity" or "confidentiality") allowed in the policy. This means that calling the hook when the access control decision would be ignored generates a bogus permission check and audit record. Fix this by checking sample_type first and only calling the hook when its result would be honored. Fixes: b0c8fdc7fdb7 ("lockdown: Lock down perf when in confidentiality mode") Signed-off-by: Ondrej Mosnacek Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Paul Moore Link: https://lkml.kernel.org/r/20210224215628.192519-1-omosnace@redhat.com Signed-off-by: Greg Kroah-Hartman --- kernel/events/core.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -11705,12 +11705,12 @@ SYSCALL_DEFINE5(perf_event_open, return err; } - err = security_locked_down(LOCKDOWN_PERF); - if (err && (attr.sample_type & PERF_SAMPLE_REGS_INTR)) - /* REGS_INTR can leak data, lockdown must prevent this */ - return err; - - err = 0; + /* REGS_INTR can leak data, lockdown must prevent this */ + if (attr.sample_type & PERF_SAMPLE_REGS_INTR) { + err = security_locked_down(LOCKDOWN_PERF); + if (err) + return err; + } /* * In cgroup mode, the pid argument is used to pass the fd