mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
posix_acl: Clear SGID bit when setting file permissions
When file permissions are modified via chmod(2) and the user is not in the owning group or capable of CAP_FSETID, the setgid bit is cleared in inode_change_ok(). Setting a POSIX ACL via setxattr(2) sets the file permissions as well as the new ACL, but doesn't clear the setgid bit in a similar way; this allows to bypass the check in chmod(2). Fix that. References: CVE-2016-7097 Reviewed-by: Christoph Hellwig <[email protected]> Reviewed-by: Jeff Layton <[email protected]> Signed-off-by: Jan Kara <[email protected]> Signed-off-by: Andreas Gruenbacher <[email protected]>
This commit is contained in:
parent
5d3ddd84ea
commit
073931017b
16 changed files with 89 additions and 102 deletions
|
|
@ -65,8 +65,8 @@ int hfsplus_set_posix_acl(struct inode *inode, struct posix_acl *acl,
|
|||
case ACL_TYPE_ACCESS:
|
||||
xattr_name = XATTR_NAME_POSIX_ACL_ACCESS;
|
||||
if (acl) {
|
||||
err = posix_acl_equiv_mode(acl, &inode->i_mode);
|
||||
if (err < 0)
|
||||
err = posix_acl_update_mode(inode, &inode->i_mode, &acl);
|
||||
if (err)
|
||||
return err;
|
||||
}
|
||||
err = 0;
|
||||
|
|
|
|||
Loading…
Reference in a new issue