Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp210188pxb; Wed, 11 Nov 2020 01:26:59 -0800 (PST) X-Google-Smtp-Source: ABdhPJytBjPGH5sjBNeXhmDXAoR96Q2BlheClAl6MxFNOMCkscPIwmOln2f1bBtjb67MdASJW1RL X-Received: by 2002:a17:906:c8d8:: with SMTP id gc24mr25178930ejb.417.1605086819306; Wed, 11 Nov 2020 01:26:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1605086819; cv=none; d=google.com; s=arc-20160816; b=JQWlChKn7TUh6VriM/wVeQE+qaHRYst1K3pEwtQJBEyg8Qm3wMO1mFvEF2GL3lxefI WJqVm8dUJz4uyg0tX7P0V4UulUCLdEQ+wuP6M7Pl374ZGV79D4vEWtmhEzGPg8IwIjby l8gFjfG8QO4RPSY0Voj3yEEgX6ffNH/Bt4XSDrR0e/rOCPF5YnZWj48oyeNPXJ+hdNWx gxskrIqYqTJKvUeF5r8hlPCfvLhV3CqiJLzOFauGaDixEvfmDWYBRQDbOTB0EyuMffJn zZOft28WvtqbM8ANPds79fVdnQJU/dGvH9QhTLIj/o1ResS7kOGQPr8M6/fro2guvzbr gu9A== 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=xMI/Su2Pbim+3bziLtmBYZHJNImBgWtkLYnj5OEusqQ=; b=SqlqHwvzAIO0E8+/3WicY4qTe6Q8P2RxhOfkAZFN6ID1hm4FcRp8FxJp1jitbJrgNr jbMxWUQeGxdHQxjbAcR2FNEHGkFEDmPKKzed1R01KY+Uz5IjYURfILb8ZuVL1Dw3RI5e Uol0KmFZ+24lZmhsDcTnlyZbEm4eZqnWBFwwBz4GJjKALkfm9UH9/SENuZk7nQ2p5fB6 aiu7/9rKyP0tBIlE7VfbdHgibEU37oybmN6h0brJKYKOIE577E3lD/jX8J33IQMFlk8g ZiSd4iR97Aj+ZTxP9pw7X7KC5d0rleTD7HiCkPFdebq+E3m5ED2dfmAtgTV30yPZJ80d SyrQ== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id c8si984300edr.540.2020.11.11.01.26.35; Wed, 11 Nov 2020 01:26:59 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727089AbgKKJY3 (ORCPT + 99 others); Wed, 11 Nov 2020 04:24:29 -0500 Received: from frasgout.his.huawei.com ([185.176.79.56]:2083 "EHLO frasgout.his.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726134AbgKKJYC (ORCPT ); Wed, 11 Nov 2020 04:24:02 -0500 Received: from fraeml714-chm.china.huawei.com (unknown [172.18.147.200]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4CWK583sbfz67JlR; Wed, 11 Nov 2020 17:22:36 +0800 (CST) Received: from roberto-HP-EliteDesk-800-G2-DM-65W.huawei.com (10.204.65.161) 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.1913.5; Wed, 11 Nov 2020 10:23:59 +0100 From: Roberto Sassu To: , CC: , , , , , Roberto Sassu Subject: [PATCH v3 02/11] evm: Load EVM key in ima_load_x509() to avoid appraisal Date: Wed, 11 Nov 2020 10:22:53 +0100 Message-ID: <20201111092302.1589-3-roberto.sassu@huawei.com> X-Mailer: git-send-email 2.27.GIT In-Reply-To: <20201111092302.1589-1-roberto.sassu@huawei.com> References: <20201111092302.1589-1-roberto.sassu@huawei.com> MIME-Version: 1.0 Content-Transfer-Encoding: 7BIT Content-Type: text/plain; charset=US-ASCII X-Originating-IP: [10.204.65.161] X-ClientProxiedBy: lhreml735-chm.china.huawei.com (10.201.108.86) 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 Public keys do not need to be appraised by IMA as the restriction on the IMA/EVM keyrings ensures that a key can be loaded only if it is signed with a key in the primary or secondary keyring. 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 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 defined. Signed-off-by: Roberto Sassu Reviewed-by: Mimi Zohar --- security/integrity/iint.c | 2 ++ security/integrity/ima/ima_init.c | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/security/integrity/iint.c b/security/integrity/iint.c index 1d20003243c3..7d08c31c612f 100644 --- a/security/integrity/iint.c +++ b/security/integrity/iint.c @@ -200,7 +200,9 @@ int integrity_kernel_read(struct file *file, loff_t offset, void __init integrity_load_keys(void) { ima_load_x509(); +#ifndef CONFIG_IMA_LOAD_X509 evm_load_x509(); +#endif } static int __init integrity_fs_init(void) diff --git a/security/integrity/ima/ima_init.c b/security/integrity/ima/ima_init.c index 4902fe7bd570..9d29a1680da8 100644 --- a/security/integrity/ima/ima_init.c +++ b/security/integrity/ima/ima_init.c @@ -106,6 +106,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.27.GIT