Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp1458269ybt; Thu, 18 Jun 2020 09:07:32 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyRwIx08OTptO/7/TzCvzaDUaLr2gJowPAnImG9cdj2dpVV5v05SZtVdxnm3C4klB+J98ga X-Received: by 2002:a17:906:434f:: with SMTP id z15mr4497690ejm.178.1592496452188; Thu, 18 Jun 2020 09:07:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592496452; cv=none; d=google.com; s=arc-20160816; b=J0yT0wkBPbx33mZzmp/RQFRNoCvnL5s4zJsQBlZWYl0ncI8xSnrQZq/mFLOnbqeBdK RE6A35LtkHoRsdYS4FxY5ZojV3cmpbrfa6dYaMWxSlXn0UzFVpKMXknbCrO3bkqUqpN6 AYjDMWluOcQU605ufwjCflwSXtqJpDmVtYY8MXCiDFI9FWefhjHgdrxvGw3AayplCakW F8VhmpGEB7MbgjNhq1EgFRp2JdrX0KHelQwy3scd5k9WGAxJxNQJiUvSsKmkzmwSNWU4 a3UTg25pT1YpNJ1pYVqTk3R6aO70izJm8e35DoA95lVfExjtUxSgV9mb4RunGHbnAy21 bGyA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=BfE2YtN1oCCc6fYtyyFhk1KSK0YtD+MSn01cOoBn7Mg=; b=mR8pHYRMzVathxIpTii8iF9mqp6Bo32G/2GnqOh80QmplY/gKPb0/NOxVxZpIFMD5b Pwlffu6euJqNT2/v4MEaoiAK8y0dGqgWM0p9bMk7EA8B5jfm/gVOIXNqztn4CSevsKhx 2gW86gbW0SZW5S5rB+5h5al2hUcRdRWcsbaOTMs3B+IrYpkOmrvv9fG0E0AnLqRCC30b 8roupbEBiBAya3+9r74CQP14I775jbTvVDNlzA+GbNMtOCAffbfkCysEX4q7ZKM1a0UL Y/n/oih4Lw2ler3JB4f0utl5ZTisY0eUskOpenF8z15bPhThZ0q5q2ClexW+swbFsgN4 vd7Q== 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 v24si2347315edw.95.2020.06.18.09.07.09; Thu, 18 Jun 2020 09:07:32 -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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731762AbgFRQEU (ORCPT + 99 others); Thu, 18 Jun 2020 12:04:20 -0400 Received: from lhrrgout.huawei.com ([185.176.76.210]:2331 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1731700AbgFRQER (ORCPT ); Thu, 18 Jun 2020 12:04:17 -0400 Received: from lhreml744-chm.china.huawei.com (unknown [172.18.7.106]) by Forcepoint Email with ESMTP id D46BD41D2136EAC63843; Thu, 18 Jun 2020 17:04:15 +0100 (IST) Received: from fraeml714-chm.china.huawei.com (10.206.15.33) by lhreml744-chm.china.huawei.com (10.201.108.194) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1913.5; Thu, 18 Jun 2020 17:04:15 +0100 Received: from roberto-HP-EliteDesk-800-G2-DM-65W.huawei.com (10.204.65.160) by fraeml714-chm.china.huawei.com (10.206.15.33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1913.5; Thu, 18 Jun 2020 18:04:14 +0200 From: Roberto Sassu To: , CC: , , , Roberto Sassu Subject: [PATCH 02/11] evm: Load EVM key in ima_load_x509() to avoid appraisal Date: Thu, 18 Jun 2020 18:01:24 +0200 Message-ID: <20200618160133.937-2-roberto.sassu@huawei.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200618160133.937-1-roberto.sassu@huawei.com> References: <20200618160133.937-1-roberto.sassu@huawei.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.204.65.160] X-ClientProxiedBy: lhreml704-chm.china.huawei.com (10.201.108.53) To fraeml714-chm.china.huawei.com (10.206.15.33) X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org 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 is loaded only if it is signed with a key in the primary or secondary keyring. However, when evm_load_x509() is loaded, 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 --- 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 e12c4900510f..4765a266ba96 100644 --- a/security/integrity/iint.c +++ b/security/integrity/iint.c @@ -212,7 +212,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.17.1