|
Bugzilla – Full Text Bug Listing |
| Summary: | AUDIT-0: systemd: new polkit action org.freedesktop.systemd1.bypass-dump-ratelimit | ||
|---|---|---|---|
| Product: | [openSUSE] openSUSE Tumbleweed | Reporter: | Franck Bui <fbui> |
| Component: | Security | Assignee: | Wolfgang Frisch <wolfgang.frisch> |
| Status: | RESOLVED FIXED | QA Contact: | E-mail List <qa-bugs> |
| Severity: | Normal | ||
| Priority: | P5 - None | CC: | wolfgang.frisch |
| Version: | Current | ||
| Target Milestone: | --- | ||
| Hardware: | Other | ||
| OS: | Other | ||
| Whiteboard: | |||
| Found By: | --- | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
|
Description
Franck Bui
2023-06-03 10:29:55 UTC
FTR it's currently blocking the following submission: https://build.opensuse.org/request/show/1090446 We will have a look. These polkit additions to systemd usually don't take long to check. I will work on this. systemd offers a number of D-Bus methods to dump/serialize various information: - Dump() - DumpUnitsMatchingPatterns() - DumpByFileDescriptor() - DumpUnitsMatchingPatternsByFileDescriptor() Previously, these methods had been freely accessible to unprivileged users. Since they consume a significant amount of CPU time, it was possible to stall systemd system-wide with a simple loop: ``` while((1)); do dbus-send --print-reply --session --dest=org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager.Dump >/dev/null done ``` This behavior constituted a local DoS vector, which was was then mitigated by introducing rate-limiting: > commit d936595672cf3ee7c1c547f8fd30512f82be8784 > Author: Luca Boccassi <bluca@debian.org> > Date: Thu Apr 27 23:23:30 2023 +0100 > > manager: restrict Dump*() to privileged callers or ratelimit > > Dump*() methods can take quite some time due to the amount of data to > serialize, so they can potentially stall the manager. Make them > privileged, as they are debugging tools anyway. Use a new 'dump' > capability for polkit, and the 'reload' capability for SELinux, as > that's also non-destructive but slow. > > If the caller is not privileged, allow it but rate limited to 10 calls > every 10 minutes. Finally, this new Polkit action allows *only* admins to bypass the recently introduced rate-limiting: > <allow_any>auth_admin</allow_any> > <allow_inactive>auth_admin</allow_inactive> > <allow_active>auth_admin_keep</allow_active> Good. Reviewed and submitted. The changes should hit Factory soon. https://build.opensuse.org/request/show/1091064 Released. My previous request had the wrong target. Still learning the ropes with regards to ALP. This one should be OK: https://build.suse.de/request/show/301103 The ALP submission has been accepted. |