Falha Nimbuspwn ajuda invasores a obter privilégios elevados no Linux

A nova falha Nimbuspwn ajuda invasores a obter privilégios elevados no Linux. Confira os detalhes dessa nova ameaça.

Um novo conjunto de vulnerabilidades rastreadas coletivamente como Nimbuspwn pode permitir que invasores locais aumentem privilégios em sistemas Linux para implantar malware que varia de backdoors a ransomware.

Falha Nimbuspwn ajuda invasores a obter privilégios elevados no Linux

Falha Nimbuspwn ajuda invasores a obter privilégios elevados no Linux
Falha Nimbuspwn ajuda invasores a obter privilégios elevados no Linux

Pesquisadores de segurança da Microsoft divulgaram os problemas em um relatório hoje, observando que eles podem ser encadeados para obter privilégios de root em um sistema vulnerável.

Rastreados como CVE-2022-29799 e CVE-2022-29800, os problemas de segurança do Nimbuspwn foram descobertos no networkd-dispatcher, um componente que envia alterações de status de conexão em máquinas Linux.

A descoberta das vulnerabilidades começou com “ouvir mensagens no barramento do sistema”, o que levou os pesquisadores a revisar o fluxo de código do networkd-dispatcher.

As falhas de segurança do Nimbuspwn referem-se a problemas de passagem de diretório, corrida de link simbólico e condição de corrida de tempo de verificação de tempo de uso (TOCTOU), explica o pesquisador da Microsoft Jonathan Bar Or no relatório.

Uma observação que despertou o interesse foi que o daemon networkd-dispatcher estava sendo executado no momento da inicialização com privilégios de root no sistema.

Falha Nimbuspwn ajuda invasores a obter privilégios elevados no Linux
Falha Nimbuspwn ajuda invasores a obter privilégios elevados no Linux – networkd-dispatcher rodando como root fonte: Microsoft

O pesquisador notou que o daemon usava um método chamado “_run_hooks_for_state” para descobrir e executar scripts dependendo do estado de rede detectado.

A lógica implementada por “_run_hooks_for_state” inclui o retorno de arquivos de script executáveis ​​pertencentes ao usuário root e ao grupo root que estão no diretório “/etc/networkd-dispatcher/.d”.

Ele executa cada script no local acima usando o processo chamado subprocess.Popen enquanto fornece variáveis ​​de ambiente personalizadas.

Falha Nimbuspwn ajuda invasores a obter privilégios elevados no Linux
Falha Nimbuspwn ajuda invasores a obter privilégios elevados no Linux – Código fonte para _run_hooks_for_state fonte: Microsoft

O relatório da Microsoft explica que “_run_hooks_for_state” tem vários problemas de segurança:

  • Directory traversal (CVE-2022-29799): nenhuma das funções no fluxo higieniza o OperationalState ou o AdministrativeState. Os estados são usados ​​para construir o caminho do script, então um estado pode conter padrões de passagem de diretório (por exemplo, “../../”) para escapar do diretório base “/etc/networkd-dispatcher”.
  • Symlink race: tanto o script discovery quanto o subprocess.Popen seguem links simbólicos.
  • Time-of-check-time-of-use (TOCTOU) race condition (CVE-2022-29800): há um certo tempo entre os scripts serem descobertos e executados. Um invasor pode abusar dessa vulnerabilidade para substituir scripts que o networkd-dispatcher acredita ser de propriedade do root por outros que não são.

Um invasor com privilégios baixos no sistema pode encadear as vulnerabilidades acima para escalar as permissões de nível raiz enviando um sinal arbitrário.

Uma visão geral das etapas para a exploração bem-sucedida é capturada na imagem abaixo, que abrange três estágios do ataque:

Ataque Nimbuspwn em três estágios
Falha Nimbuspwn ajuda invasores a obter privilégios elevados no Linux – Ataque Nimbuspwn em três estágios fonte: Microsoft

Bar Ou observa que vencer a condição de corrida TOCTOU requer o plantio de vários arquivos. Em seu experimento para implementar um exploit personalizado, o sucesso foi registrado após três tentativas.
Exploração do Nimbuspwn implementada e vencedora da corrida TOCTOU
Falha Nimbuspwn ajuda invasores a obter privilégios elevados no Linux – Exploração do Nimbuspwn implementada e vencedora da corrida TOCTOU fonte: Microsoft

Aproveitar o Nimbuspwn com sucesso é possível quando o código de exploração pode possuir um nome de barramento em um serviço ou processo privilegiado.

O pesquisador diz que existem muitos ambientes onde isso é possível, incluindo o Linux Mint onde “o serviço systemd-networkd que normalmente possui o nome do barramento” org.freedesktop.Network1” [usado na pesquisa] não inicia na inicialização por padrão.

Além disso, o Bar Or encontrou “processos adicionais em execução como o usuário systemd-network” que executavam código arbitrário de locais graváveis ​​em todo o mundo: por exemplo, vários plugins gpgv (lançado quando o apt-get install ou apt-get upgrade é executado), o Erlang Port Mapper Daemon (epmd) que permite a execução de código arbitrário em alguns cenários.

Clayton Craft, o mantenedor do networkd-dispatcher, implantou as atualizações necessárias que abordam as vulnerabilidades Nimbuspwn.

Os usuários do Linux são recomendados para corrigir seus sistemas assim que as correções estiverem disponíveis para seu sistema operacional.

Sobre o Edivaldo Brito

Edivaldo Brito é analista de sistemas, gestor de TI, blogueiro e também um grande fã de sistemas operacionais, banco de dados, software livre, redes, programação, dispositivos móveis e tudo mais que envolve tecnologia.