Uma vulnerabilidade no Flatpak permitiu evitar o modo de isolamento

Vulnerabilidade

Simon McVittie revelou faz pouco que identificou uma vulnerabilidade (CVE-2021-21261) que permite evitar o isolamento do espaço isolado e executar código arbitrário no ambiente do sistema host no utilitário de implantação e gerenciamento de pacote Flatpak.

Vulnerabilidade está presente no serviço D-Bus flatpak-portal (portal flatpak também conhecido por seu nome de serviço D-Bus org.freedesktop.portal.Flatpak), que fornece o lançamento de "portais" usados ​​para organizar o acesso a recursos fora do contêiner.

Sobre a decisão

E é que a vulnerabilidade mencionada como tal não o é, uma vez que se deve ao funcionamento do serviço "Flatpak-portal" permite que aplicativos sandbox iniciem seu próprio processo filho em um novo ambiente de área restrita, ao qual as mesmas configurações de isolamento ou mais fortes são aplicadas (por exemplo, para lidar com conteúdo não confiável).

A vulnerabilidade é explorada, uma vez que passa variáveis ​​de ambiente específicas do processo de chamada para controladores não isolados do sistema host (por exemplo, executando o comando «Flatpak Run«). Um aplicativo malicioso pode expor variáveis ​​de ambiente que afetam a execução flatpak e executar qualquer código no lado do host.

O serviço flatpak-session-help (org.freedesktop.flatpakal quem acessa flatpak-spawn --host) destina-se a fornecer aplicativos marcados especialmente a capacidade de executar código arbitrário no sistema host, portanto, não é uma vulnerabilidade que também dependa das variáveis ​​de ambiente fornecidas a ele.

Conceder acesso ao serviço org.freedesktop.Flatpak indica que um aplicativo é confiável e pode legitimamente executar código arbitrário fora da sandbox. Por exemplo, o ambiente de desenvolvimento integrado GNOME Builder é marcado como confiável desta forma.

O serviço D-Bus do portal Flatpak permite que os aplicativos em uma sandbox Flatpak iniciem seus próprios threads em uma nova sandbox, seja com as mesmas configurações de segurança do chamador ou com configurações de segurança mais restritivas.

Um exemplo disso, é que é mencionado que em navegadores da web empacotados com Flatpak como Chromium, para iniciar conversas que irá processar conteúdo da web não confiável e fornecer a esses threads uma caixa de proteção mais restritiva do que o próprio navegador.

Em versões vulneráveis, o serviço de portal Flatpak passa as variáveis ​​de ambiente especificadas pelo chamador para processos fora da área restrita no sistema host e, em particular, para o comando flatpak run que é usado para iniciar a nova instância da área restrita.

Um aplicativo Flatpak malicioso ou comprometido pode definir variáveis ​​de ambiente confiáveis ​​pelo comando flatpak run e usá-las para executar código arbitrário que não está em uma sandbox.

Deve-se lembrar que muitos desenvolvedores flatpak desabilitam o modo de isolamento ou dão acesso total ao diretório inicial.

Por exemplo, os pacotes GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity e VLC vêm com modo de isolamento limitado. Se os pacotes com acesso ao diretório inicial estiverem comprometidos, apesar da presença da tag «sandboxed»Na descrição do pacote, um invasor precisa modificar o arquivo ~ / .bashrc para executar seu código.

Um problema separado é o controle sobre as alterações do pacote e a confiança nos criadores do pacote, que geralmente não estão associados ao projeto ou distribuições principais.

Solução

É mencionado que o problema foi corrigido nas versões 1.10.0 e 1.8.5 do Flatpak, mas posteriormente uma mudança regressiva apareceu na revisão que causou problemas de compilação em sistemas com suporte a bolha definida com o sinalizador setuid.

Depois disso, a regressão mencionada foi corrigida na versão 1.10.1 (enquanto a atualização para o ramo 1.8.x ainda não está disponível).

Finalmente se você estiver interessado em saber mais sobre isso Sobre o relatório de vulnerabilidade, você pode verificar os detalhes no link a seguir.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.