Bugzilla – Bug 1211978
AUDIT-0: systemd: new polkit action org.freedesktop.systemd1.bypass-dump-ratelimit
Last modified: 2024-03-13 09:21:54 UTC
Hello Secteam, Could you review the new polkit action introduced by 253.5 ? Thanks.
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.