evm: labeling pseudo filesystems exception
authorMimi Zohar <zohar@linux.vnet.ibm.com>
Tue, 21 Apr 2015 17:59:31 +0000 (13:59 -0400)
committerMimi Zohar <zohar@linux.vnet.ibm.com>
Thu, 21 May 2015 17:28:47 +0000 (13:28 -0400)
To prevent offline stripping of existing file xattrs and relabeling of
them at runtime, EVM allows only newly created files to be labeled.  As
pseudo filesystems are not persistent, stripping of xattrs is not a
concern.

Some LSMs defer file labeling on pseudo filesystems.  This patch
permits the labeling of existing files on pseudo files systems.

Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
security/integrity/evm/evm_main.c

index 10f994307a04ec0473fef1795a4b8b0cca3755e3..582091498819126dd39a341d53079ad19a0b3acf 100644 (file)
@@ -296,6 +296,17 @@ static int evm_protect_xattr(struct dentry *dentry, const char *xattr_name,
                iint = integrity_iint_find(d_backing_inode(dentry));
                if (iint && (iint->flags & IMA_NEW_FILE))
                        return 0;
+
+               /* exception for pseudo filesystems */
+               if (dentry->d_inode->i_sb->s_magic == TMPFS_MAGIC
+                   || dentry->d_inode->i_sb->s_magic == SYSFS_MAGIC)
+                       return 0;
+
+               integrity_audit_msg(AUDIT_INTEGRITY_METADATA,
+                                   dentry->d_inode, dentry->d_name.name,
+                                   "update_metadata",
+                                   integrity_status_msg[evm_status],
+                                   -EPERM, 0);
        }
 out:
        if (evm_status != INTEGRITY_PASS)
This page took 0.027632 seconds and 5 git commands to generate.