Skip to contentSkip to conversation

Patch "fs: Check for invalid i_uid in may_follow_link()" has been added to the 4.7-stable tree

PATCH [email protected] 1 participant 1 message Sep 9, 2016

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

fs: Check for invalid i_uid in may_follow_link()

to the 4.7-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:
fs-check-for-invalid-i_uid-in-may_follow_link.patch
and it can be found in the queue-4.7 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 2d7f9e2ad35e4e7a3086231f19bfab33c6a8a64a Mon Sep 17 00:00:00 2001

From: Seth Forshee <[email protected]>
Date: Tue, 26 Apr 2016 14:36:23 -0500
Subject: fs: Check for invalid i_uid in may_follow_link()

From: Seth Forshee <[email protected]>

commit 2d7f9e2ad35e4e7a3086231f19bfab33c6a8a64a upstream.

Filesystem uids which don't map into a user namespace may result in inode->i_uid being INVALID_UID. A symlink and its parent could have different owners in the filesystem can both get mapped to INVALID_UID, which may result in following a symlink when this would not have otherwise been permitted when protected symlinks are enabled.

---
 fs/namei.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
fs/namei.c +3 -1
@@ -901,6 +901,7 @@ static inline int may_follow_link(struct
 {
 	const struct inode *inode;
 	const struct inode *parent;
+	kuid_t puid;
 
 	if (!sysctl_protected_symlinks)
 		return 0;
@@ -916,7 +917,8 @@ static inline int may_follow_link(struct
 		return 0;
 
 	/* Allowed if parent directory and link owner match. */
-	if (uid_eq(parent->i_uid, inode->i_uid))
+	puid = parent->i_uid;
+	if (uid_valid(puid) && uid_eq(puid, inode->i_uid))
 		return 0;
 
 	if (nd->flags & LOOKUP_RCU)

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

queue-4.7/cred-reject-inodes-with-invalid-ids-in-set_create_file_as.patch queue-4.7/fs-check-for-invalid-i_uid-in-may_follow_link.patch