diff mbox series

[v5,02/12] integrity: Do not allow machine keyring updates following init

Message ID 20210907160110.2699645-3-eric.snowberg@oracle.com
State New
Headers show
Series Enroll kernel keys thru MOK | expand

Commit Message

Eric Snowberg Sept. 7, 2021, 4:01 p.m. UTC
The machine keyring is setup during init.  No additional keys should be
allowed to be added afterwards.  Leave the permission as read only.

Signed-off-by: Eric Snowberg <eric.snowberg@oracle.com>
---
v2: Initial version
v4: Unmodified from v2
v5: Rename to machine keyring
---
 security/integrity/digsig.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Jarkko Sakkinen Sept. 9, 2021, 1:43 p.m. UTC | #1
On Tue, 2021-09-07 at 12:01 -0400, Eric Snowberg wrote:
> The machine keyring is setup during init.  No additional keys should be

> allowed to be added afterwards.  Leave the permission as read only.

> 

> Signed-off-by: Eric Snowberg <eric.snowberg@oracle.com>

> ---

> v2: Initial version

> v4: Unmodified from v2

> v5: Rename to machine keyring

> ---

>  security/integrity/digsig.c | 3 ++-

>  1 file changed, 2 insertions(+), 1 deletion(-)

> 

> diff --git a/security/integrity/digsig.c b/security/integrity/digsig.c

> index 8c315be8ad99..5a75ac2c4dbe 100644

> --- a/security/integrity/digsig.c

> +++ b/security/integrity/digsig.c

> @@ -140,7 +140,8 @@ int __init integrity_init_keyring(const unsigned int id)

>  		return -ENOMEM;

>  

>  	restriction->check = restrict_link_to_ima;

> -	perm |= KEY_USR_WRITE;


I would add here inline comment to say mostly the same as the commit
message does.

> +	if (id != INTEGRITY_KEYRING_MACHINE)

> +		perm |= KEY_USR_WRITE;

>  

>  out:

>  	return __integrity_init_keyring(id, perm, restriction);


I checked patch 01 but I lost the email somewhere. The keyring definition
looks now sane.

/Jarkko
diff mbox series

Patch

diff --git a/security/integrity/digsig.c b/security/integrity/digsig.c
index 8c315be8ad99..5a75ac2c4dbe 100644
--- a/security/integrity/digsig.c
+++ b/security/integrity/digsig.c
@@ -140,7 +140,8 @@  int __init integrity_init_keyring(const unsigned int id)
 		return -ENOMEM;
 
 	restriction->check = restrict_link_to_ima;
-	perm |= KEY_USR_WRITE;
+	if (id != INTEGRITY_KEYRING_MACHINE)
+		perm |= KEY_USR_WRITE;
 
 out:
 	return __integrity_init_keyring(id, perm, restriction);