All of lore.kernel.org
 help / color / mirror / Atom feed
From: Roberto Sassu <roberto.sassu@huawei.com>
To: <zohar@linux.ibm.com>, <mjg59@google.com>
Cc: <linux-integrity@vger.kernel.org>,
	<linux-security-module@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>,
	Roberto Sassu <roberto.sassu@huawei.com>,
	<stable@vger.kernel.org>
Subject: [PATCH 03/11] evm: Refuse EVM_ALLOW_METADATA_WRITES only if the HMAC key is loaded
Date: Thu, 18 Jun 2020 18:01:25 +0200	[thread overview]
Message-ID: <20200618160133.937-3-roberto.sassu@huawei.com> (raw)
In-Reply-To: <20200618160133.937-1-roberto.sassu@huawei.com>

Granting metadata write is safe if the HMAC key is not loaded, as it won't
let an attacker obtain a valid HMAC from corrupted xattrs. evm_write_key()
however does not allow it if any key is loaded, including a public key,
which should not be a problem.

This patch allows setting EVM_ALLOW_METADATA_WRITES if the EVM_INIT_HMAC
flag is not set.

Cc: stable@vger.kernel.org # 4.16.x
Fixes: ae1ba1676b88e ("EVM: Allow userland to permit modification of EVM-protected metadata")
Signed-off-by: Roberto Sassu <roberto.sassu@huawei.com>
---
 security/integrity/evm/evm_secfs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/security/integrity/evm/evm_secfs.c b/security/integrity/evm/evm_secfs.c
index cfc3075769bb..92fe26ace797 100644
--- a/security/integrity/evm/evm_secfs.c
+++ b/security/integrity/evm/evm_secfs.c
@@ -84,7 +84,7 @@ static ssize_t evm_write_key(struct file *file, const char __user *buf,
 	 * keys are loaded.
 	 */
 	if ((i & EVM_ALLOW_METADATA_WRITES) &&
-	    ((evm_initialized & EVM_KEY_MASK) != 0) &&
+	    ((evm_initialized & EVM_INIT_HMAC) != 0) &&
 	    !(evm_initialized & EVM_ALLOW_METADATA_WRITES))
 		return -EPERM;
 
-- 
2.17.1


  parent reply	other threads:[~2020-06-18 16:04 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-18 16:01 [PATCH 01/11] evm: Execute evm_inode_init_security() only when the HMAC key is loaded Roberto Sassu
2020-06-18 16:01 ` [PATCH 02/11] evm: Load EVM key in ima_load_x509() to avoid appraisal Roberto Sassu
2020-08-21 18:45   ` Mimi Zohar
2020-08-31  9:44     ` Roberto Sassu
2020-08-31 19:26       ` Mimi Zohar
2020-06-18 16:01 ` Roberto Sassu [this message]
2020-08-21 20:14   ` [PATCH 03/11] evm: Refuse EVM_ALLOW_METADATA_WRITES only if the HMAC key is loaded Mimi Zohar
2020-08-31  8:24     ` Roberto Sassu
2020-08-31 21:31       ` Mimi Zohar
2020-06-18 16:01 ` [PATCH 04/11] evm: Check size of security.evm before using it Roberto Sassu
2020-08-24 12:14   ` Mimi Zohar
2020-06-18 16:01 ` [PATCH 05/11] evm: Allow xattr/attr operations for portable signatures if check fails Roberto Sassu
2020-08-24 12:16   ` Mimi Zohar
2020-08-21 18:30 ` [PATCH 01/11] evm: Execute evm_inode_init_security() only when the HMAC key is loaded Mimi Zohar
2020-08-24 17:45   ` Mimi Zohar
2020-09-02 11:42     ` Roberto Sassu
2020-09-02 13:40       ` Mimi Zohar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200618160133.937-3-roberto.sassu@huawei.com \
    --to=roberto.sassu@huawei.com \
    --cc=linux-integrity@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=mjg59@google.com \
    --cc=stable@vger.kernel.org \
    --cc=zohar@linux.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.