CVE-2020-14318 Missing handle permissions check in SMB1/2/3 ChangeNotify
- Subject: Missing handle permissions check in SMB1/2/3 ChangeNotify.
- CVE ID#: CVE-2020-14318
- Versions: All versions of Samba since Samba 3.6.0
- Systems where Windows ACL permissions are more restrictive than native filesystem permissions can be made to leak file name information to unprivileged accounts.
The SMB1/2/3 protocols have a concept of "ChangeNotify", where a client can request file name notification on a directory handle when a condition such as "new file creation" or "file size change" or "file timestamp update" occurs.
A missing permissions check on a directory handle requesting ChangeNotify meant that a client with a directory handle open only for FILE_READ_ATTRIBUTES (minimal access rights) could be used to obtain change notify replies from the server. These replies contain information that should not be available to directory handles open for FILE_READ_ATTRIBUTE only.
Patches addressing both these issues have been posted to:
Additionally, Samba 4.11.15, 4.12.9 and 4.13.1 have been issued as security releases to correct the defect. Samba administrators are advised to upgrade to these releases or apply the patch as soon as possible.
base score of 4.3 - medium.
Workaround and mitigating factors
As Samba internally opens an underlying file system handle on a directory when a client requests an open, even for FILE_READ_ATTRIBUTES then if the underlying file system permissions don't allow "r" (read) access for the connected user, then the handle open request will be denied.
"r" access is the normal permission needed to list or otherwise reveal the contents of a directory, so if a connected user has "r" access then they will be able to list the directory contents normally, and the information received by a ChangeNofity request is already available to the user.
The security issue occurs if the Administrator or directory owner had set more restrictive Windows ACL permissions on the directory to disallow read access to the user, and this permissions change was not reflected in the underlying file system permissions.
This will only occur if Samba is configured with VFS modules to decouple the underlying file system permissions from the Windows ACLs, by setting up a share with the settings:
[vulnerable_share] vfs_objects = vfs_acl_xattr acl_xattr:ignore system acls = yes
Reported by Steven French of Microsoft and the Samba Team.
Advisory written by Jeremy Allison of Google and the Samba Team.
Patches provided by Jeremy Allison of Google and the Samba Team.