Assumption never checked, should fail if the mounter creds are not sufficient.
Signed-off-by: Mark Salyzyn <[email protected]> Cc: Miklos Szeredi <[email protected]> Cc: Jonathan Corbet <[email protected]> Cc: Vivek Goyal <[email protected]> Cc: Eric W. Biederman <[email protected]> Cc: Amir Goldstein <[email protected]> Cc: Randy Dunlap <[email protected]> Cc: Stephen Smalley <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: Eric Van Hensbergen <[email protected]> Cc: Latchesar Ionkov <[email protected]> Cc: Dominique Martinet <[email protected]> Cc: David Howells <[email protected]> Cc: Chris Mason <[email protected]> Cc: Josef Bacik <[email protected]> Cc: David Sterba <[email protected]> Cc: Jeff Layton <[email protected]> Cc: Sage Weil <[email protected]> Cc: Ilya Dryomov <[email protected]> Cc: Steve French <[email protected]> Cc: Tyler Hicks <[email protected]> Cc: Jan Kara <[email protected]> Cc: Theodore Ts'o <[email protected]> Cc: Andreas Dilger <[email protected]> Cc: Jaegeuk Kim <[email protected]> Cc: Chao Yu <[email protected]> Cc: Bob Peterson <[email protected]> Cc: Andreas Gruenbacher <[email protected]> Cc: David Woodhouse <[email protected]> Cc: Richard Weinberger <[email protected]> Cc: Dave Kleikamp <[email protected]> Cc: Greg Kroah-Hartman <[email protected]> Cc: Tejun Heo <[email protected]> Cc: Trond Myklebust <[email protected]> Cc: Anna Schumaker <[email protected]> Cc: Mark Fasheh <[email protected]> Cc: Joel Becker <[email protected]> Cc: Joseph Qi <[email protected]> Cc: Mike Marshall <[email protected]> Cc: Martin Brandenburg <[email protected]> Cc: Alexander Viro <[email protected]> Cc: Phillip Lougher <[email protected]> Cc: Darrick J. Wong <[email protected]> Cc: [email protected] Cc: Hugh Dickins <[email protected]> Cc: David S. Miller <[email protected]> Cc: Andrew Morton <[email protected]> Cc: Mathieu Malaterre <[email protected]> Cc: Ernesto A. Fernández <[email protected]> Cc: Vyacheslav Dubeyko <[email protected]> Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] Cc: [email protected] # 4.4, 4.9, 4.14 & 4.19 --- v11 + v12 + v13 - rebase v10: - return NULL rather than ERR_PTR(-EPERM) - did _not_ add it ovl_can_decode_fh() because of changes since last review, suspect needs to be added to ovl_lower_uuid_ok()? v8 + v9: - rebase v7: - This time for realz v6: - rebase v5: - dependency of "overlayfs: override_creds=off option bypass creator_cred" --- fs/overlayfs/namei.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fs/overlayfs/namei.c b/fs/overlayfs/namei.c index e9717c2f7d45..9702f0d5309d 100644 --- a/fs/overlayfs/namei.c +++ b/fs/overlayfs/namei.c @@ -161,6 +161,9 @@ struct dentry *ovl_decode_real_fh(struct ovl_fh *fh, struct vfsmount *mnt, if (!uuid_equal(&fh->uuid, &mnt->mnt_sb->s_uuid)) return NULL; + if (!capable(CAP_DAC_READ_SEARCH)) + return NULL; + bytes = (fh->len - offsetof(struct ovl_fh, fid)); real = exportfs_decode_fh(mnt, (struct fid *)fh->fid, bytes >> 2, (int)fh->type, -- 2.22.0.770.g0f2c4a37fd-goog
