ASA-2018-00094 – Keybase: Caminho de pesquisa não confiável permite escalação de privilégios


For the English version of this alert, click here.

Allele Security Alert

ASA-2018-00094

Identificador(es)

ASA-2018-00094, CVE-2018-18629

Título

Caminho de pesquisa não confiável permite escalação de privilégios

Fabricante(s)

Keybase

Produto(s)

Keybase

Versão(ões) afetada(s)

Keybase versões liberadas em ou após 1 de março de 2018 (commit 06b97bb3), e anterior a 2.8.0-20181023124437.

Versão(ões) corrigida(s)

Keybase 2.8.0-20181023124437 ou acima.

Prova de conceito

Sim

Descrição

O redirecionador do sistema de arquivos keybase controla o ponto de montagem /keybase em máquinas Linux (e máquinas macOS que ativaram a integração do Finder). Para suportar múltiplos usuários que executam o Keybase na mesma máquina, ambos podem acessar o sistema de arquivos keybase através de caminhos /keybase, este ponto de montagem atua como um redirecionador, usando FUSE para apresentar links simbólicos ao usuário, redirecionando-os para seu ponto de montagem pessoal do sistema de arquivos keybase (geralmente localizado em /run/user/UID/keybase/kbfs no Linux, embora varie de acordo com a distribuição do sistema operacional e a configuração local). O binário que cria esse ponto de montagem é chamado de keybase-redirector e o instalador do pacote keybase define seu bit suid para que ele possa ter permissões de root, necessárias para criar o ponto de montagem /keybase e montar um sistema de arquivos FUSE que possa ser acessado por vários usuários. É executável por qualquer usuário, já que os usuários executam o keybase com suas próprias contas.

O ataque foi possível devido a uma versão anterior do keybase-redirector que usava o binário fusermount para criar o ponto de montagem /keybase. Ele fez isso indiretamente por meio de uma chamada para a função mount() na biblioteca Go bazil.org/fuse, depois de obter privilégios de root. Essa função usou a função exec.Command do Go para executar uma chamada para o fusermount. No entanto, ele não especificou um caminho absoluto ou limpou as variáveis de ambiente ao fazer isso. Por causa disso, um software mal-intencionado em execução no computador do usuário pode tornar qualquer executável chamado fusermount, definir sua variável de ambiente $ PATH para incluir o diretório que contém esse executável e chamar keybase-redirector, enganando-o para executar esse executável com permissões de root.

Detalhes técnicos

Desconhecido

Créditos

Rich Mirch (mirchr)

Referência(s)

CVE-2018-18629: Keybase Linux privilege escalation
https://blog.mirch.io/2018/12/21/cve-2018-18629-keybase-linux-privilege-escalation/

Local Privilege Escalation on Linux via keybase-redirector (KB002)
https://keybase.io/docs/secadv/kb002

PoC for CVE-2018-18629 Keybase Linux Privilege Escalation
https://raw.githubusercontent.com/mirchr/security-research/master/vulnerabilities/CVE-2018-18629.sh

Linux privilege escalation via trusted $PATH in keybase-redirector
https://hackerone.com/reports/426944

CVE-2018-18629
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-18629

CVE-2018-18629
https://nvd.nist.gov/vuln/detail/CVE-2018-18629

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

Última modificação: 24 de dezembro de 2018