Bug 1738326

Summary: The LDAP backend is not properly parsing sudoOptions, resulting in selinux roles not being applied
Product: Red Hat Enterprise Linux 8 Reporter: Kyle Walker <kwalker>
Component: sudoAssignee: Radovan Sroka <rsroka>
Status: CLOSED ERRATA QA Contact: Martin Zelený <mzeleny>
Severity: high Docs Contact:
Priority: unspecified    
Version: 8.0CC: dapospis, ddelcian, jamills, lvrabec, mthacker, mzeleny, rsroka, striker, tjaros, toneata
Target Milestone: rcKeywords: ZStream
Target Release: 8.0Flags: kwalker: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: sudo-1.8.25p1-6.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1743168 (view as bug list) Environment:
Last Closed: 2019-11-05 22:25:47 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1743168    
Attachments:
Description Flags
Patch to correct the "=" parsing
none
Patch to address the test17.ldif2sudo failure none

Description Kyle Walker 2019-08-06 19:30:50 UTC
Description of problem:
 The LDAP backend is not properly parsing sudoOptions. In at least one instance, this results in selinux roles not being applied.


Version-Release number of selected component (if applicable):
 sudo-1.8.25p1-4.el8_0

How reproducible:
 Difficult, without a full LDAP server backend configuration

Steps to Reproduce:
1. Configure an LDAP server which includes a sudoOptions configuration to allow escalation to a particular selinux role

    sudoOption:role=sysadm_r
 
2. Access a system that is using the LDAP server for authentication services, where the user is in an SELinux user confined state as staff_r

3. Attempt to transition using 'sudo -i' to acquire the sysadm_r role

    # sudo -i
    # id -Z


Actual results:
    # sudo -i
    # id -Z
    staff_u:staff_r:staff_t:s0

Expected results:
    # sudo -i
    # id -Z
    sysadm_u:sysadm_r:sysadm_t:s0


Additional info:
 The following commit from the upstream project has been identified as resolving the condition.

    Fixed a bug in the sudoers LDAP back-end parsing the 
    command_timeout, role, type, privs and limitprivs sudoOptions. This also 
    affected cvtsudoers conversion from LDIF to sudoers or JSON.

Comment 2 Kyle Walker 2019-08-06 19:35:52 UTC
Created attachment 1601193 [details]
Patch to correct the "=" parsing

Comment 3 Kyle Walker 2019-08-06 19:36:59 UTC
Created attachment 1601194 [details]
Patch to address the test17.ldif2sudo failure

Comment 18 Striker Leggette 2019-09-09 18:42:17 UTC
*** Bug 1747569 has been marked as a duplicate of this bug. ***

Comment 21 errata-xmlrpc 2019-11-05 22:25:47 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2019:3598