Skip to contentSkip to conversation

Patch "ext4: don't allow encrypted operations without keys" has been added to the 4.9-stable tree

PATCH [email protected] 1 participant 1 message Oct 10, 2017

Subsystems (2)
lore
Share & tools
lore

[email protected]

author maintainer Applied
#0 lore raw

This is a note to let you know that I've just added the patch titled

ext4: don't allow encrypted operations without keys

to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
ext4-don-t-allow-encrypted-operations-without-keys.patch
and it can be found in the queue-4.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.

Quoted 1 line

From 173b8439e1ba362007315868928bf9d26e5cc5a6 Mon Sep 17 00:00:00 2001

From: Theodore Ts'o <[email protected]>
Date: Wed, 28 Dec 2016 00:22:52 -0500
Subject: ext4: don't allow encrypted operations without keys

From: Theodore Ts'o <[email protected]>

commit 173b8439e1ba362007315868928bf9d26e5cc5a6 upstream.

While we allow deletes without the key, the following should not be permitted:

# cd /vdc/encrypted-dir-without-key
# ls -l
total 4
-rw-r--r-- 1 root root   0 Dec 27 22:35 6,LKNRJsp209FbXoSvJWzB
-rw-r--r-- 1 root root 286 Dec 27 22:35 uRJ5vJh9gE7vcomYMqTAyD
# mv uRJ5vJh9gE7vcomYMqTAyD  6,LKNRJsp209FbXoSvJWzB
---
 fs/ext4/namei.c |   12 ++++++++++++
 1 file changed, 12 insertions(+)
fs/ext4/namei.c +12 -0
@@ -3527,6 +3527,12 @@ static int ext4_rename(struct inode *old
 			EXT4_I(old_dentry->d_inode)->i_projid)))
 		return -EXDEV;
 
+	if ((ext4_encrypted_inode(old_dir) &&
+	     !fscrypt_has_encryption_key(old_dir)) ||
+	    (ext4_encrypted_inode(new_dir) &&
+	     !fscrypt_has_encryption_key(new_dir)))
+		return -ENOKEY;
+
 	retval = dquot_initialize(old.dir);
 	if (retval)
 		return retval;
@@ -3726,6 +3732,12 @@ static int ext4_cross_rename(struct inod
 	u8 new_file_type;
 	int retval;
 
+	if ((ext4_encrypted_inode(old_dir) &&
+	     !fscrypt_has_encryption_key(old_dir)) ||
+	    (ext4_encrypted_inode(new_dir) &&
+	     !fscrypt_has_encryption_key(new_dir)))
+		return -ENOKEY;
+
 	if ((ext4_encrypted_inode(old_dir) ||
 	     ext4_encrypted_inode(new_dir)) &&
 	    (old_dir != new_dir) &&

Patches currently in stable-queue which might be from [email protected] are

queue-4.9/vfs-deny-copy_file_range-for-non-regular-files.patch queue-4.9/ext4-don-t-allow-encrypted-operations-without-keys.patch queue-4.9/ext4-fix-data-corruption-for-mmap-writes.patch queue-4.9/ext4-don-t-clear-sgid-when-inheriting-acls.patch queue-4.9/f2fs-don-t-allow-encrypted-operations-without-keys.patch