Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp875298pxf; Wed, 7 Apr 2021 13:54:01 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxb2FJmcAkPfVn6VnOX+kVICK2zsr6oSRsQ2+8nEXHpax7QkZkU6DAGGB4VXo7zdo9hnj5Z X-Received: by 2002:a05:6e02:eac:: with SMTP id u12mr3964029ilj.132.1617828840863; Wed, 07 Apr 2021 13:54:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617828840; cv=none; d=google.com; s=arc-20160816; b=rQytAumtfPEKVabk5LvgCfGMB/5R7jtf/srUHsYmk/H3KKjhfpG6kJRd+pcwCwH+Gl yYY8VHf/RDIBQYk5RCDvItjF1UfVmU3YC2HRBZyUTGDRtRBDMYRAMHtExXT4NOpasa9w yaIzwSIuNxAldUL5qf0HhyYyEbp3txCJzSfITfZO9zt813pLdcSZ3o60j5bmKDAuRRRn wyfGeOm40RkziJN+E3X7Hw0fP41RNQU/WTthLw1HwB1yjH7775FAqSfWH8c7CGne1D0J kDSSq2vqboC06xaLZLcHmE3jp0P1jOdzUDSRzrVwqRtrKzHaxvKlBbQaeWiieZUtQHjw t50g== 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 :references:in-reply-to:message-id:date:subject:cc:to:from; bh=3yxhOB2lwUqRuiyLb7fPKBDFPOGVmZS5PMZBI5bY7r4=; b=v8Zo5BQwTzD8RwZzc2bDadqDZJPf3Yef3CwdDaU28fmchy+K9fkFkxO8qaKuTrE/+H 7UEirGwyy20OTzu7Xwe2bucoMXjF7/I/TRc1D4uM770rZR0d/gjSPsk32nS4nnIitq0p yyIsi4+ZrGFmr71CpR/4yYAx4fvZCLqPznMWgUyYV4MX7G2kLpl/LwIVK77x92eTW/2L mMlVvISETZ79XW9+T9L/1VNSZhb8wS8//CfJ3+/GhwsdNb5DprVGkpsyfDZkToiFuytZ 5HEgNEhdkYt9IiKXvjrluaAGVi4t2E9nK9N0r1rJ2Hci6FsgwZw28pcziRfIkk4VA7TD RcgQ== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a17si11014025ilk.8.2021.04.07.13.53.47; Wed, 07 Apr 2021 13:54:00 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1351638AbhDGKxc (ORCPT + 99 others); Wed, 7 Apr 2021 06:53:32 -0400 Received: from frasgout.his.huawei.com ([185.176.79.56]:2786 "EHLO frasgout.his.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1351595AbhDGKxQ (ORCPT ); Wed, 7 Apr 2021 06:53:16 -0400 Received: from fraeml714-chm.china.huawei.com (unknown [172.18.147.201]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4FFgwl3wVVz6815N; Wed, 7 Apr 2021 18:43:35 +0800 (CST) Received: from fraphisprd00473.huawei.com (7.182.8.141) by fraeml714-chm.china.huawei.com (10.206.15.33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2106.2; Wed, 7 Apr 2021 12:53:05 +0200 From: Roberto Sassu To: , CC: , , , , Roberto Sassu Subject: [PATCH v5 02/12] evm: Load EVM key in ima_load_x509() to avoid appraisal Date: Wed, 7 Apr 2021 12:52:42 +0200 Message-ID: <20210407105252.30721-3-roberto.sassu@huawei.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20210407105252.30721-1-roberto.sassu@huawei.com> References: <20210407105252.30721-1-roberto.sassu@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [7.182.8.141] X-ClientProxiedBy: lhreml753-chm.china.huawei.com (10.201.108.203) To fraeml714-chm.china.huawei.com (10.206.15.33) X-CFilter-Loop: Reflected Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The public builtin keys do not need to be appraised by IMA as the restriction on the IMA/EVM trusted keyrings ensures that a key can be loaded only if it is signed with a key on the builtin or secondary keyrings. However, when evm_load_x509() is called, appraisal is already enabled and a valid IMA signature must be added to the EVM key to pass verification. Since the restriction is applied on both IMA and EVM trusted keyrings, it is safe to disable appraisal also when the EVM key is loaded. This patch calls evm_load_x509() inside ima_load_x509() if CONFIG_IMA_LOAD_X509 is enabled, which crosses the normal IMA and EVM boundary. Signed-off-by: Roberto Sassu Reviewed-by: Mimi Zohar --- security/integrity/iint.c | 4 +++- security/integrity/ima/ima_init.c | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/security/integrity/iint.c b/security/integrity/iint.c index 0ba01847e836..d66b94c7c8d5 100644 --- a/security/integrity/iint.c +++ b/security/integrity/iint.c @@ -208,7 +208,9 @@ int integrity_kernel_read(struct file *file, loff_t offset, void __init integrity_load_keys(void) { ima_load_x509(); - evm_load_x509(); + + if (!IS_ENABLED(CONFIG_IMA_LOAD_X509)) + evm_load_x509(); } static int __init integrity_fs_init(void) diff --git a/security/integrity/ima/ima_init.c b/security/integrity/ima/ima_init.c index 6e8742916d1d..5076a7d9d23e 100644 --- a/security/integrity/ima/ima_init.c +++ b/security/integrity/ima/ima_init.c @@ -108,6 +108,10 @@ void __init ima_load_x509(void) ima_policy_flag &= ~unset_flags; integrity_load_x509(INTEGRITY_KEYRING_IMA, CONFIG_IMA_X509_PATH); + + /* load also EVM key to avoid appraisal */ + evm_load_x509(); + ima_policy_flag |= unset_flags; } #endif -- 2.26.2