mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 11:26:02 +09:00
Revert "evm: Translate user/group ids relative to s_user_ns when computing HMAC"
commit19339c2516upstream. This reverts commit0b3c9761d1. Seth Forshee <seth.forshee@canonical.com> writes: > All right, I think0b3c9761d1should be > reverted then. EVM is a machine-local integrity mechanism, and so it > makes sense that the signature would be based on the kernel's notion of > the uid and not the filesystem's. I added a commment explaining why the EVM hmac needs to be in the kernel's notion of uid and gid, not the filesystems to prevent remounting the filesystem and gaining unwaranted trust in files. Acked-by: Seth Forshee <seth.forshee@canonical.com> Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com> Cc: Aditya Kali <adityakali@google.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
a49f03472b
commit
5fed1ff845
@@ -152,8 +152,16 @@ static void hmac_add_misc(struct shash_desc *desc, struct inode *inode,
|
||||
memset(&hmac_misc, 0, sizeof(hmac_misc));
|
||||
hmac_misc.ino = inode->i_ino;
|
||||
hmac_misc.generation = inode->i_generation;
|
||||
hmac_misc.uid = from_kuid(inode->i_sb->s_user_ns, inode->i_uid);
|
||||
hmac_misc.gid = from_kgid(inode->i_sb->s_user_ns, inode->i_gid);
|
||||
/* The hmac uid and gid must be encoded in the initial user
|
||||
* namespace (not the filesystems user namespace) as encoding
|
||||
* them in the filesystems user namespace allows an attack
|
||||
* where first they are written in an unprivileged fuse mount
|
||||
* of a filesystem and then the system is tricked to mount the
|
||||
* filesystem for real on next boot and trust it because
|
||||
* everything is signed.
|
||||
*/
|
||||
hmac_misc.uid = from_kuid(&init_user_ns, inode->i_uid);
|
||||
hmac_misc.gid = from_kgid(&init_user_ns, inode->i_gid);
|
||||
hmac_misc.mode = inode->i_mode;
|
||||
crypto_shash_update(desc, (const u8 *)&hmac_misc, sizeof(hmac_misc));
|
||||
if (evm_hmac_attrs & EVM_ATTR_FSUUID)
|
||||
|
||||
Reference in New Issue
Block a user