1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-11 05:18:09 +03:00
samba-mirror/libcli/security
Tim Beale ba46578f97 CVE-2018-10919 security: Fix checking of object-specific CONTROL_ACCESS rights
An 'Object Access Allowed' ACE that assigned 'Control Access' (CR)
rights to a specific attribute would not actually grant access.

What was happening was the remaining_access mask for the object_tree
nodes would be Read Property (RP) + Control Access (CR). The ACE mapped
to the schemaIDGUID for a given attribute, which would end up being a
child node in the tree. So the CR bit was cleared for a child node, but
not the rest of the tree. We would then check the user had the RP access
right, which it did. However, the RP right was cleared for another node
in the tree, which still had the CR bit set in its remaining_access
bitmap, so Samba would not grant access.

Generally, the remaining_access only ever has one bit set, which means
this isn't a problem normally. However, in the Control Access case there
are 2 separate bits being checked, i.e. RP + CR.

One option to fix this problem would be to clear the remaining_access
for the tree instead of just the node. However, the Windows spec is
actually pretty clear on this: if the ACE has a CR right present, then
you can stop any further access checks.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13434

Signed-off-by: Tim Beale <timbeale@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Gary Lockyer <gary@catalyst.net.nz>
2018-08-14 13:57:16 +02:00
..
access_check.c CVE-2018-10919 security: Fix checking of object-specific CONTROL_ACCESS rights 2018-08-14 13:57:16 +02:00
access_check.h libcli/security: handle node initialisation in one spot in insert_in_object_tree() 2013-01-21 16:12:45 +01:00
create_descriptor.c libcli/security: Move debug message to DBG_DEBUG() 2017-09-07 06:56:27 +02:00
display_sec.c Fix whitespace 2015-02-26 15:58:05 +01:00
display_sec.h libcli/security: move display_sec headers to own header file and add to 2011-03-16 10:11:08 +01:00
dom_sid.c libcli/security: add dom_sid_is_valid_account_domain() 2018-03-19 20:30:52 +01:00
dom_sid.h libcli/security: add dom_sid_is_valid_account_domain() 2018-03-19 20:30:52 +01:00
object_tree.c libcli-security: Add documentation for object_tree_modify_access 2013-01-21 22:31:20 +01:00
privileges_private.h libcli/security Move 'private' privileges functions to another header 2010-09-11 18:46:13 +10:00
privileges.c libcli: Add security_token_system_privilege(). 2013-08-06 14:41:58 +02:00
privileges.h libcli: Add security_token_system_privilege(). 2013-08-06 14:41:58 +02:00
pysecurity.c python: Port samba.security to Python 3 compatible form. 2017-09-06 11:35:18 +02:00
sddl.c libcli: Remove code clone 2016-10-13 18:13:45 +02:00
sddl.h s4:move the sddl code down to the top level 2010-03-03 09:16:34 +01:00
secace.c lib: Remove some unused code 2015-08-14 07:46:12 +02:00
secace.h lib: Remove some unused code 2015-08-14 07:46:12 +02:00
secacl.c libcli/security: remove dup_sec_acl() 2014-05-29 01:08:25 +02:00
secacl.h libcli/security: remove dup_sec_acl() 2014-05-29 01:08:25 +02:00
secdesc.c libcli: remove unused se_create_child_secdesc_buf() 2018-05-09 19:18:43 +02:00
secdesc.h libcli: remove unused se_create_child_secdesc_buf() 2018-05-09 19:18:43 +02:00
security_descriptor.c libcli/security: add security_descriptor_for_client() helper function 2015-03-30 13:41:25 +02:00
security_descriptor.h libcli/security: add security_descriptor_for_client() helper function 2015-03-30 13:41:25 +02:00
security_token.c libcli/security: implement SECURITY_GUEST 2016-04-28 16:51:17 +02:00
security_token.h libcli/security: implement SECURITY_GUEST 2016-04-28 16:51:17 +02:00
security.h lib: Add required prerequisites for librpc/gen_ndr/security.h 2016-12-28 20:17:12 +01:00
session.c libcli/security: only announce a session as GUEST if 'Builtin\Guests' is there without 'Authenticated User' 2018-03-15 21:54:16 +01:00
session.h libcli/security: implement SECURITY_GUEST 2016-04-28 16:51:17 +02:00
util_sid.c libcli/security: fix some SID values in comments 2018-03-16 19:47:15 +01:00
wscript_build python: Port samba.security to Python 3 compatible form. 2017-09-06 11:35:18 +02:00