Bug 2211566

Summary: SELinux prevents the rhsmcertd-worker from executing the ip command
Product: Red Hat Enterprise Linux 9 Reporter: Pino Toscano <ptoscano>
Component: selinux-policyAssignee: Nobody <nobody>
Status: CLOSED ERRATA QA Contact: Milos Malik <mmalik>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 9.3CC: lvrabec, mmalik, zpytela
Target Milestone: rcKeywords: AutoVerified, Triaged
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: selinux-policy-38.1.15-1.el9 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-11-07 08:52:30 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:

Description Pino Toscano 2023-06-01 05:24:44 UTC
Description of problem:
We (subscription-manager team) are working to change how subscription-manager collects network facts, making use of `ip` from the iproute package. When a first draft of the change was tested with QE's help, the result was that rhsmcertd-worker (spawned by rhsmcertd) does now allow this execution -- for example:

type=AVC msg=audit(1684773208.054:13797): avc:  denied  { execute } for  pid=57312 comm="rhsmcertd-worke" name="ip" dev="vda1" ino=12803826 scontext=system_u:system_r:rhsmcertd_t:s0 tcontext=system_u:object_r:ifconfig_exec_t:s0 tclass=file permissive=0

The `ip` usage seems to not trigger denials when run from the subscription-manager CLI, e.g. when registering using `subscription-manager register` or a simpler `subscription-manager facts` (to trigger the facts collection).

Hence, please allow rhsmcertd-worker to execute/run `ip`.

How reproducible:
All the time.

Steps to Reproduce:
1. Install a version of subscription-manager that uses `ip` to collect network facts
2. Shorten the check-in time of rhsmcertd to e.g. 5 minutes & disable the splay (the randomization of the check-in time within the interval), so you can see the problem quicker than waiting for the default check-in time (which is ~4h):
  # subscription-manager config --rhsmcertd.certCheckInterval=5 --rhsmcertd.splay=0
3. Restart rhsmcertd: `systemctl restart rhsmcertd.service`
4. Register a system: `subscription-manager register`
5. Wait for 5 minutes

Actual results:
SELinux denials for the execution of "ip" as shown above.

Expected results:
No denials.

Comment 4 Zdenek Pytela 2023-06-01 15:16:57 UTC
Note: run the command as
subscription-manager config --rhsmcertd.certcheckinterval=3 --rhsmcertd.splay=0

or edit /etc/rhsm/rhsm.conf

Comment 7 Zdenek Pytela 2023-06-08 18:55:50 UTC
Commit:
795a04994 Allow subscription-manager execute ip

Comment 18 errata-xmlrpc 2023-11-07 08:52:30 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 (selinux-policy bug fix and enhancement update), 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-2023:6617