oss-sec mailing list archives
CVE-2019-15718: Missing access controls on systemd-resolved's D-Bus interface
From: Chris Coulson <chris.coulson () canonical com>
Date: Tue, 3 Sep 2019 19:35:00 +0100
Hi, Nadav Markus from Palo Alto Networks discovered that systemd-resolved does not enforce appropriate access controls on its D-Bus interface and allows unprivileged users to execute methods that are meant to be available only to privileged users. This can be exploited by local users to modify the system's DNS resolver settings. Details of the issue follow: ----- manager_connect_bus() in src/resolve/resolved-bus.c opens a connection to the system bus using the bus_open_system_watch_bind_with_description() helper function, which is defined in src/shared/bus-util.c. This helper function calls sd_bus_set_trusted(). This has the effect of disabling access controls, even for members that are defined without the SD_BUS_VTABLE_UNPRIVILEGED flag - the absence of which should deny access from unprivileged clients. See check_access() in src/libsystemd/sd-bus/bus-objects.c: static int check_access(sd_bus *bus, sd_bus_message *m, struct vtable_member *c, sd_bus_error *error) { uint64_t cap; int r; assert(bus); assert(m); assert(c); /* If the entire bus is trusted let's grant access */ if (bus->trusted) return 0; /* If the member is marked UNPRIVILEGED let's grant access */ if (c->vtable->flags & SD_BUS_VTABLE_UNPRIVILEGED) return 0; ... timesyncd and networkd both use the same helper function to connect to the system bus, but both of these are unaffected by this bug. In timesyncd's case, it only exposes some read-only properties and these don't have access controls. In networkd's case, all methods are annotated with SD_BUS_VTABLE_UNPRIVILEGED and it uses policykit for enforcing access controls. ----- The complete fix for this issue can be found at https://github.com/systemd/systemd/pull/13457 and is in the systemd v243 release, although https://github.com/systemd/systemd/pull/13457/commits/35e528018f315798d3bffcb592b32a0d8f5162bd on its own is sufficient to address the vulnerability. Many thanks - Chris
Attachment:
signature.asc
Description: OpenPGP digital signature
Current thread:
- CVE-2019-15718: Missing access controls on systemd-resolved's D-Bus interface Chris Coulson (Sep 03)