evm: Don't update hmacs in user ns mounts
authorSeth Forshee <seth.forshee@canonical.com>
Fri, 22 Dec 2017 14:32:35 +0000 (15:32 +0100)
committerEric W. Biederman <ebiederm@xmission.com>
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: linux-integrity@vger.kernel.org
Cc: linux-security-module@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: James Morris <james.l.morris@oracle.com>
Cc: Mimi Zohar <zohar@linux.vnet.ibm.com>
Cc: "Serge E. Hallyn" <serge@hallyn.com>
Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
Signed-off-by: Dongsu Park <dongsu@kinvolk.io>
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
security/integrity/evm/evm_crypto.c

index a46fba3..facf9cd 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);