evm: Don't update hmacs in user ns mounts
authorSeth Forshee <[email protected]>
Fri, 22 Dec 2017 14:32:35 +0000 (15:32 +0100)
committerEric W. Biederman <[email protected]>
Thu, 3 May 2018 16:28:29 +0000 (11:28 -0500)
The kernel should not calculate new hmacs for mounts done by
non-root users. Update evm_calc_hmac_or_hash() to refuse to
calculate new hmacs for mounts for non-init user namespaces.

Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: James Morris <[email protected]>
Cc: Mimi Zohar <[email protected]>
Cc: "Serge E. Hallyn" <[email protected]>
Signed-off-by: Seth Forshee <[email protected]>
Signed-off-by: Dongsu Park <[email protected]>
Signed-off-by: Eric W. Biederman <[email protected]>
security/integrity/evm/evm_crypto.c

index a46fba322340b80fac97fb1c6ca1a5b14e128759..facf9cdd577d963a9fa1ecb185652bd306951f3d 100644 (file)
@@ -200,7 +200,8 @@ static int evm_calc_hmac_or_hash(struct dentry *dentry,
        int size;
        bool ima_present = false;
 
-       if (!(inode->i_opflags & IOP_XATTR))
+       if (!(inode->i_opflags & IOP_XATTR) ||
+           inode->i_sb->s_user_ns != &init_user_ns)
                return -EOPNOTSUPP;
 
        desc = init_desc(type);