Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [day] [month] [year] [list]
Date: Tue, 3 Sep 2019 19:35:00 +0100
From: Chris Coulson <chris.coulson@...onical.com>
To: oss-security@...ts.openwall.com
Subject: CVE-2019-15718: Missing access controls on systemd-resolved's D-Bus
 interface

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



Download attachment "signature.asc" of type "application/pgp-signature" (489 bytes)

Powered by blists - more mailing lists

Please check out the Open Source Software Security Wiki, which is counterpart to this mailing list.

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.