From: Andy Lutomirski Date: Wed, 8 Oct 2014 19:32:47 +0000 (-0700) Subject: fs: Add a missing permission check to do_umount X-Git-Tag: submit/tizen/20160422.055611~1^2~99^2~18^2~93 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=dc3980ea4ad9d8d0b63b3cde732c9b95750208ce;p=sdk%2Femulator%2Femulator-kernel.git fs: Add a missing permission check to do_umount commit a1480dcc3c706e309a88884723446f2e84fedd5b upstream. Accessing do_remount_sb should require global CAP_SYS_ADMIN, but only one of the two call sites was appropriately protected. Fixes CVE-2014-7975. Signed-off-by: Andy Lutomirski Signed-off-by: Greg Kroah-Hartman --- diff --git a/fs/namespace.c b/fs/namespace.c index 75536db4b69b..c7d4a0ae2c65 100644 --- a/fs/namespace.c +++ b/fs/namespace.c @@ -1365,6 +1365,8 @@ static int do_umount(struct mount *mnt, int flags) * Special case for "unmounting" root ... * we just try to remount it readonly. */ + if (!capable(CAP_SYS_ADMIN)) + return -EPERM; down_write(&sb->s_umount); if (!(sb->s_flags & MS_RDONLY)) retval = do_remount_sb(sb, MS_RDONLY, NULL, 0);