ASA-2019-00531 – systemd: Ausência de controles de acesso  na interface D-Bus no systemd-resolved


For the English version of this alert, click here.

Allele Security Alert

ASA-2019-00531

Identificador(es)

ASA-2019-00531, CVE-2019-15718

Título

Ausência de controles de acesso  na interface D-Bus no systemd-resolved

Fabricante(s)

systemd

Produto(s)

systemd

Versão(ões) afetada(s)

systemd versões anteriores a v243

Versão(ões) corrigida(s)

systemd versão v243

Prova de conceito

Desconhecido

Descrição

Foi descoberto que o serviço systemd-resolved não impõe controles de acesso apropriados em sua interface D-Bus e permite que usuários sem privilégios executem métodos que deveriam estar disponíveis apenas para usuários privilegiados. Isso pode ser explorado por usuários locais para modificar as configurações do DNS resolver do sistema.

Detalhes técnicos

A função manager_connect_bus() em src/resolve/resolved-bus.c abre uma conexão com o barramento do sistema usando a função auxiliar bus_open_system_watch_bind_with_description(), definida em src/shared/bus-util.c.

Essa função auxiliar chama sd_bus_set_trusted(). Isso tem o efeito de desativar os controles de acesso, mesmo para os membros definidos sem a flag SD_BUS_VTABLE_UNPRIVILEGED – cuja ausência deve negar o acesso de clientes não privilegiados. Veja check_access() em 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;
...

Os serviços timesyncd e networkd usam a mesma função auxiliar para se conectar ao barramento do sistema, mas ambos não são afetados pela falha descrita. No caso do timesyncd, ele expõe apenas algumas propriedades read-only e elas não têm controles de acesso. No caso do networkd, todos os métodos são anotados com SD_BUS_VTABLE_UNPRIVILEGED e ele usa o policykit para impor controles de acesso.

Créditos

Nadav Markus (Palo Alto Networks)

Referência(s)

CVE-2019-15718: Missing access controls on systemd-resolved’s D-Bus interface
https://seclists.org/oss-sec/2019/q3/191

Resolved issue by keszybz · Pull Request #13457 · systemd/systemd
https://github.com/systemd/systemd/pull/13457

shared/but-util: drop trusted annotation from bus_open_system_watch_bind_with_description()
https://github.com/systemd/systemd/commit/35e528018f315798d3bffcb592b32a0d8f5162bd

CVE-2019-15718
https://access.redhat.com/security/cve/CVE-2019-15718

CVE-2019-15718
https://security-tracker.debian.org/tracker/CVE-2019-15718

CVE-2019-15718 in Ubuntu
https://people.canonical.com/~ubuntu-security/cve/CVE-2019-15718.html

CVE-2019-15718 | SUSE
https://www.suse.com/security/cve/CVE-2019-15718

CVE-2019-15718
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-15718

CVE-2019-15718
https://nvd.nist.gov/vuln/detail/CVE-2019-15718

Se encontrou algum erro neste alerta ou deseja uma análise compreensiva, entre em contato.

Última modificação: 4 setembro 2019

Não somos responsáveis por qualquer perda de dados, corrupção de dispositivos ou qualquer outro tipo de problema devido ao uso de qualquer informação mencionada em nossos alertas de segurança.