fs: Avoid premature clearing of capabilities
authorJan Kara <jack@suse.cz>
Thu, 26 May 2016 15:21:32 +0000 (17:21 +0200)
committerSalvatore Bonaccorso <carnil@debian.org>
Fri, 2 Dec 2016 05:35:22 +0000 (05:35 +0000)
commit977cde79e334e9fe211e06223de8eac1c285c5a6
tree44be0472135e939d941eb3f7e490eddba86d100a
parent69e3a503a90a1e4339bcb6a2bcc99bb2eafb38fe
fs: Avoid premature clearing of capabilities

Currently, notify_change() clears capabilities or IMA attributes by
calling security_inode_killpriv() before calling into ->setattr. Thus it
happens before any other permission checks in inode_change_ok() and user
is thus allowed to trigger clearing of capabilities or IMA attributes
for any file he can look up e.g. by calling chown for that file. This is
unexpected and can lead to user DoSing a system.

Fix the problem by calling security_inode_killpriv() at the end of
inode_change_ok() instead of from notify_change(). At that moment we are
sure user has permissions to do the requested change.

References: CVE-2015-1350
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jan Kara <jack@suse.cz>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name fs-Avoid-premature-clearing-of-capabilities.patch
fs/attr.c