dbus/bus
hongjinghao a70c8f2fbc bus: Assign a serial number for messages from the driver
Normally, it's enough to rely on a message being given a serial number
by the DBusConnection just before it is actually sent. However, in the
rare case where the policy blocks the driver from sending a message
(due to a deny rule or the outgoing message quota being full), we need
to get a valid serial number sooner, so that we can copy it into the
DBUS_HEADER_FIELD_REPLY_SERIAL field (which is mandatory) in the error
message sent to monitors. Otherwise, the dbus-daemon will crash with
an assertion failure if at least one Monitoring client is attached,
because zero is not a valid serial number to copy.

This fixes a denial-of-service vulnerability: if a privileged user is
monitoring the well-known system bus using a Monitoring client like
dbus-monitor or `busctl monitor`, then an unprivileged user can cause
denial-of-service by triggering this crash. A mitigation for this
vulnerability is to avoid attaching Monitoring clients to the system
bus when they are not needed. If there are no Monitoring clients, then
the vulnerable code is not reached.

Co-authored-by: Simon McVittie <smcv@collabora.com>
Resolves: dbus/dbus#457
(cherry picked from commit b159849e03)
2023-06-06 12:03:17 +01:00
..
legacy-config On Windows, load local configuration relative to bus setup 2015-10-02 11:24:05 +01:00
systemd-user Put dbus-daemon into session slice 2021-11-18 11:35:49 +00:00
sysusers.d systemd: add sysusers.d snippet for booting up with unpopulated /etc 2017-02-13 14:49:52 +00:00
tmpfiles.d tmpfiles: Add a note that one line is not needed with newer systemd 2018-01-29 11:59:40 +00:00
.gitignore .gitignore: Ignore many more generated files 2018-12-14 13:28:50 +00:00
activation-exit-codes.h trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00
activation-helper-bin.c Normalize C source files to end with exactly one newline 2020-06-10 10:47:31 +00:00
activation-helper.c activation-helper: Never crash if unable to write oom_score_adj 2022-09-13 12:26:13 +01:00
activation-helper.h trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00
activation.c Avoid assertation in bus_activation_reload() 2021-12-09 12:54:22 +01:00
activation.h Mediate auto-activation attempts through AppArmor 2016-11-28 12:11:45 +00:00
apparmor.c Mediate auto-activation attempts through AppArmor 2016-11-28 12:11:45 +00:00
apparmor.h Do not auto-activate services if we could not send a message 2016-11-28 12:11:41 +00:00
audit.c bus: Make audit initialization idempotent 2019-07-03 11:11:23 +01:00
audit.h audit: use DBUS_SYSTEM_LOG_WARNING if we cannot open the audit fd 2015-08-06 17:12:37 +01:00
bus.c dbus-daemon: Implement signal 'ActivatableServicesChanged' 2022-02-16 14:00:13 +01:00
bus.h tools/dbus-run-session: fix race between manual and automatically started dbus-daemon on Windows 2021-11-23 08:38:14 +01:00
CMakeLists.txt cmake: Drop an unnecessary include directory 2022-09-13 12:23:50 +01:00
config-loader-expat.c config-loader-expat: Tell Expat not to defend against hash collisions 2017-07-28 11:17:04 +01:00
config-parser-common.c Normalize C source files to end with exactly one newline 2020-06-10 10:47:31 +00:00
config-parser-common.h Normalize C source files to end with exactly one newline 2020-06-10 10:47:31 +00:00
config-parser-trivial.c Normalize C source files to end with exactly one newline 2020-06-10 10:47:31 +00:00
config-parser-trivial.h trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00
config-parser.c config-parser: no longer get past the last NULL passed to locate_attributes 2022-10-11 14:35:22 +01:00
config-parser.h trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00
connection.c bus: Assign a serial number for messages from the driver 2023-06-06 12:03:17 +01:00
connection.h bus: Clarify names of methods that query owned names 2019-05-30 15:59:10 +01:00
containers.c Disable the Containers interface 2021-12-10 16:48:51 +00:00
containers.h containers: Add a method to ask to be sent the connection instance header 2018-02-16 15:27:51 +00:00
dbus.service.in bus: Notify systemd when we are ready 2018-03-02 14:48:49 +00:00
dbus.socket.in systemd: enable the dbus service unconditionally 2010-09-06 03:21:17 +02:00
desktop-file.c trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00
desktop-file.h BusDesktopFile: Refactor logic to free the parser contents 2018-11-20 12:01:12 +00:00
dir-watch-default.c trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00
dir-watch-inotify.c bus/dir-watch: Do not crash with > 128 dirs 2022-09-13 12:24:49 +01:00
dir-watch-kqueue.c dir-watch-kqueue: Silence -Wshadow warning 2022-09-13 12:47:29 +01:00
dir-watch.h trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00
dispatch.c Configure option to disable traditional activation 2019-03-25 21:51:33 +02:00
dispatch.h trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00
driver.c dbus-daemon: Implement signal 'ActivatableServicesChanged' 2022-02-16 14:00:13 +01:00
driver.h trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00
example-session-disable-stats.conf.in config: add examples to show how to enable/disable the Stats interface 2014-10-01 16:38:40 +01:00
example-system-enable-stats.conf.in config: add examples to show how to enable/disable the Stats interface 2014-10-01 16:38:40 +01:00
example-system-hardening-without-traditional-activation.conf Configure option to disable traditional activation 2019-03-25 21:51:33 +02:00
expirelist.c embedded tests: Conform to the same API for all tests 2018-12-17 14:12:59 +00:00
expirelist.h Bug 21161 - Update the FSF address 2009-07-14 15:39:47 -04:00
main.c tools/dbus-run-session: fix race between manual and automatically started dbus-daemon on Windows 2021-11-23 08:38:14 +01:00
Makefile.am Configure option to disable traditional activation 2019-03-25 21:51:33 +02:00
org.freedesktop.dbus-session.plist.in 10.4 is old so set more sensible launchd defaults. 2010-12-09 08:20:07 +01:00
policy.c Normalize C source files to end with exactly one newline 2020-06-10 10:47:31 +00:00
policy.h dbus-daemon: add send_destination_prefix support 2019-04-26 13:29:42 +02:00
selinux.c bus/selinux: Move vsnprintf call to avoid va_list reuse 2023-02-08 10:09:44 +00:00
selinux.h trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00
services.c bus: Clarify names of methods that query owned names 2019-05-30 15:59:10 +01:00
services.h bus: Clarify names of methods that query owned names 2019-05-30 15:59:10 +01:00
session.conf.in Disable the Containers interface 2021-12-10 16:48:51 +00:00
signals.c bus/signal: fix compilation when only -Dembedded-tests 2022-01-21 21:16:45 +04:00
signals.h bus: Separate RemoveMatch into prepare and commit stages 2021-11-22 16:10:51 +00:00
stats.c driver: Share bus_driver_get_conn_helper with other modules 2017-06-29 15:42:20 +01:00
stats.h Implement GetAllMatchRules on the Stats interface 2014-09-25 12:59:50 +01:00
system.conf.in Disable the Containers interface 2021-12-10 16:48:51 +00:00
test.c tools/dbus-run-session: fix race between manual and automatically started dbus-daemon on Windows 2021-11-23 08:38:14 +01:00
test.h bus tests: Collect possible copyright holders from git history 2019-01-21 15:15:21 +00:00
utils.c trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00
utils.h trivial: Remove trailing whitespace from copyright notices 2018-12-17 11:22:39 +00:00