Bug 2023332
| Summary: | selinux-policy: please allow "systemctl --user -M <uid>@ …" | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Zbigniew Jędrzejewski-Szmek <zbyszek> |
| Component: | selinux-policy | Assignee: | Zdenek Pytela <zpytela> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | high | Docs Contact: | |
| Priority: | medium | ||
| Version: | 35 | CC: | dominik, dwalsh, grepl.miroslav, jose.p.oliveira.oss, lvrabec, maxwell, mmalik, omosnace, pkoncity, vmojzis, zpytela |
| Target Milestone: | --- | Keywords: | Triaged |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2021-12-10 15:38:18 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: | 2020415 | ||
|
Description
Zbigniew Jędrzejewski-Szmek
2021-11-15 12:34:33 UTC
There seem to be some dontaudited denials triggered by dbus-broker and systemd:
----
type=AVC msg=audit(11/15/2021 08:56:59.167:1097) : avc: denied { read write } for pid=458 comm=dbus-broker path=socket:[37803] dev="sockfs" ino=37803 scontext=system_u:system_r:system_dbusd_t:s0-s0:c0.c1023 tcontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 tclass=unix_stream_socket permissive=1
----
type=AVC msg=audit(11/15/2021 08:56:59.168:1098) : avc: denied { read write } for pid=1 comm=systemd path=socket:[37803] dev="sockfs" ino=37803 scontext=system_u:system_r:init_t:s0 tcontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 tclass=unix_stream_socket permissive=1
----
The same for confined users.
Zbyszek, do you happen to know what systemd-stdio-bridge tries to do here?
----
type=PROCTITLE msg=audit(11/15/2021 08:56:59.184:1100) : proctitle=(o-bridge)
type=SYSCALL msg=audit(11/15/2021 08:56:59.184:1100) : arch=x86_64 syscall=ioctl success=no exit=ENOTTY(Inappropriate ioctl for device) a0=0x0 a1=TCGETS a2=0x7ffca74d78a0 a3=0x0 items=0 ppid=1 pid=6580 auid=unset uid=root gid=root euid=root suid=root fsuid=root egid=root sgid=root fsgid=root tty=(none) ses=unset comm=(o-bridge) exe=/usr/lib/systemd/systemd subj=system_u:system_r:init_t:s0 key=(null)
type=AVC msg=audit(11/15/2021 08:56:59.184:1100) : avc: denied { ioctl } for pid=6580 comm=(o-bridge) path=socket:[37803] dev="sockfs" ino=37803 ioctlcmd=TCGETS scontext=system_u:system_r:init_t:s0 tcontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 tclass=unix_stream_socket permissive=1
----
See https://github.com/systemd/systemd/pull/17967/commits/1b630835dff5e13046dfd266629f8ff244dc7fb0 for a long explanation. In short, systemd-stdio-bridge is invoked to connect to a user bus from a privileged context. The commit message talks about containers, but the description also applies to the host, the mechanism is the same. So we whole sequence is as follows: 1. dnf invokes rpm 2. a scriptlet is called from rpm 3. the scriptlet calls /usr/lib/systemd/systemd-update-helper 4. systemd-update-helper calls systemctl --user <uid>@ ... 5. in the systemctl binary, sd-bus invokes systemd-run 6. which invokes systemd-stdio-bridge as the user 7. and systemctl communicates with the user manager over the bridge Thanks for the explanation. The role of dbus-broker is still a bit unclear for me, and I cannot find any package which would call /usr/lib/systemd/systemd-update-helper user-reload Anyway the requested permissions are reasonable. I've submitted a Fedora PR to address the issue: https://github.com/fedora-selinux/selinux-policy/pull/944 (In reply to Zdenek Pytela from comment #3) > Thanks for the explanation. The role of dbus-broker is still a bit unclear > for me, and I cannot find any package which would call > /usr/lib/systemd/systemd-update-helper user-reload It is called from a transfiletrigger in the systemd package, see https://src.fedoraproject.org/rpms/systemd/blob/rawhide/f/triggers.systemd#_34 > Anyway the requested permissions are reasonable. > I've submitted a Fedora PR to address the issue: > https://github.com/fedora-selinux/selinux-policy/pull/944 Thanks! |