Dirty Pipe, uma das vulnerabilidades mais sérias em anos no Linux

Recentemente foi divulgada na rede a notícia da descoberta de uma nova vulnerabilidade no Linux que está listado como "High Severity" que afeta todos os kernels desde a versão 5.8, bem como derivados, incluindo Android.

Conhecido como O Dirty Pipe permite que os dados sejam sobrescritos em arquivos somente leitura e podem levar ao escalonamento de privilégios injetando código nos processos "raiz".

Embora já tenha sido corrigido no kernel Linux principal, o bug pode ser armado na forma de uma exploração de escalonamento de privilégios em todos os dispositivos que executam o kernel Linux versão 5.8 ou posterior.

Isso também significa que vários smartphones Android recém-lançados, como o Samsung Galaxy S22 e o Google Pixel 6, também são vulneráveis, até que cada dispositivo receba o patch de kernel apropriado do respectivo OEM.

Sobre o tubo sujo

A vulnerabilidade foi revelado pelo pesquisador de segurança Max Kellerman e catalogado como (CVE-2022-0847), levou alguns meses para encontrar uma exploração de prova de conceito.

A vulnerabilidade permite que um usuário sem privilégios injete e sobrescreva dados em arquivos somente leitura, incluindo processos SUID executados como root. O apelido coloquial parece ser uma brincadeira com o infame bug Vaca suja e um mecanismo Linux chamado pipelining para passagem de mensagens entre processos, já que este último é usado durante a rotina de exploração.

Tudo começou há um ano com um ticket de suporte relacionado a arquivos corrompidos. Um cliente reclamou que os logs de acesso baixados não podiam ser descompactados. E, de fato, havia um arquivo de log corrompido em um dos servidores de log; ele pode ser descompactado, mas o gzip relatou um erro de CRC. Não consegui explicar por que estava corrompido, mas presumi que o processo de divisão noturna havia travado e produzido um arquivo corrompido. Corrigi manualmente o CRC do arquivo, fechei o ticket e logo esqueci o problema.

Após meses de análise, o pesquisador acabou descobrindo que os arquivos do cliente corrompidos eram o resultado de um bug no kernel do Linux. Ele encontrou uma maneira de explorar o Dirty Pipe para permitir que qualquer pessoa com uma conta, incluindo contas "ninguém" menos privilegiadas, adicionasse uma chave SSH à conta do usuário root.

Para acionar a vulnerabilidade, Kellerman compartilhou sua prova de conceito, o invasor deve ter permissões de leitura. Além disso, a rolagem não deve estar em um limite de página, a escrita não pode cruzar um limite de página e o arquivo não pode ser redimensionado.

Para explorar esta vulnerabilidade, você deve: criar um pipe, preencher o pipe com dados arbitrários (definindo o sinalizador PIPE_BUF_FLAG_CAN_MERGE em todas as entradas do anel), esvaziar o pipe (deixando o sinalizador definido em todas as instâncias da estrutura pipe_buffer na estrutura do anel pipe_inode_info), mescle os dados do arquivo de destino (aberto com O_RDONLY) no pipe logo antes do deslocamento de destino e grave dados arbitrários no pipe.

O Dirty Pipe também afeta qualquer versão do Android baseada em uma das versões vulneráveis ​​do kernel Linux. Como o Android é muito fragmentado, os modelos de dispositivos afetados não podem ser rastreados de maneira uniforme.

De acordo com Kellerman, O Google fundiu sua correção de bug com o kernel do Android no mês passado, logo depois que foi corrigido com o lançamento das versões do kernel Linux 5.16.11, 5.15.25 e 5.10.102.

Dito isso, provavelmente teremos que esperar um pouco antes que os OEMs comecem a lançar as atualizações do Android contendo a correção. O Pixel 6 do Google, por exemplo, ainda é vulnerável, mas usuários avançados podem mitigar a falha instalando um kernel de pós-venda com patch personalizado como uma opção alternativa.

Os desenvolvedores do kernel do Linux lançaram correções (5.16.11, 5.15.25, 5.10.102) em 23 de fevereiro, enquanto o Google corrigiu o kernel do Android em 24 de fevereiro. Kellermann e outros especialistas compararam a vulnerabilidade com CVE-2016-5195 “Vaca Suja” e eles disseram que é ainda mais fácil de explorar.

Por fim, se você tiver interesse em saber mais sobre o assunto, pode consultar 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.