Mais uma falha grave afeta o kernel de distribuições Linux

Mais uma falha grave afeta o kernel de distribuições Linux
sequioia

Em menos de 24 horas, duas falhas graves no kernel Linux foram divulgadas. A falha de segurança apelidada de Sequoia dá acesso root a usuários sem privilégios. O problema afeta uma série de distribuições populares, incluindo Ubuntu, Debian e Fedora. A falha foi chamada de Sequoia e existe na camada do sistema de arquivos. Portanto, esta é mais uma falha grave que afeta o kernel de distribuições Linux importantes.

Acredita-se que o problema de segurança afete todas as versões do kernel Linux lançadas desde 2014, o que significa que um grande número de distribuições Linux está vulnerável. Especificamente, a falha é uma vulnerabilidade de conversão do tipo size_t-to-int que pode ser explorada para elevar privilégios.

Depois de problemas no SystemD, mais uma falha grave afeta o kernel de distribuições Linux

Mais uma falha grave afeta o kernel de distribuições Linux

Escrevendo sobre as descobertas, pesquisadores de segurança da Qualys afirmam: “Descobrimos uma vulnerabilidade de conversão de tamanho t-to-int na camada do sistema de arquivos do kernel Linux: criando, montando e excluindo uma estrutura de diretório profunda cujo comprimento total do caminho excede 1 GB, um valor não privilegiado o atacante local pode escrever a string de 10 bytes string “//deleted” em um deslocamento de exatamente -2GB-10B abaixo do início de um vmalloc()ated kernel buffer”.

A empresa de segurança explica o que foi capaz de fazer:

Exploramos com sucesso essa gravação fora dos limites não controlada e obtivemos privilégios de root completos nas instalações padrão do Ubuntu 20.04, Ubuntu 20.10, Ubuntu 21.04, Debian 11 e Fedora 34 Workstation; outras distribuições Linux são certamente vulneráveis e provavelmente exploráveis. Nosso exploit requer aproximadamente 5 GB de memória e 1M de inodes; vamos publicá-lo em um futuro próximo.

Um crasher de prova de conceito já foi publicado e está disponível aqui.

Os pesquisadores de segurança oferecem detalhes de uma solução alternativa, mas ressaltam que eles “evitam que apenas nosso exploit específico funcione (mas podem existir outras técnicas de exploração)”:

  • Defina /proc/sys/kernel/unprivileged_userns_clone como 0, para evitar que um invasor monte um diretório longo em um namespace do usuário. No entanto, o invasor pode montar um diretório longo por meio do FUSE; não exploramos totalmente essa possibilidade, porque acidentalmente tropeçamos em CVE-2021-33910 no systemd: se um invasor monta um FUSE em um diretório longo (mais de 8 MB), o systemd esgota sua pilha, falha e, portanto, trava todo o funcionamento sistema (um kernel panic).
  • Defina /proc/sys/kernel/unprivileged_bpf_disabled como 1, para evitar que um invasor carregue um programa eBPF no kernel. No entanto, o invasor pode corromper outros objetos vmalloc () atados (por exemplo, pilhas de threads), mas não investigamos essa possibilidade.

Outros detalhes

O problema reside na camada do kernel responsável por gerenciar o sistema de arquivos (ou seja, como os arquivos do sistema e do usuário são armazenados); especificamente, está relacionado à interface seq_file , responsável por produzir os arquivos virtuais que contêm sequências de registros.

Segundo os pesquisadores, até onde sabem, a vulnerabilidade foi incorporada ao kernel há 7 anos, na versão 3.16 do kernel , como parte do commit 058504ed de seu repositório.

A Qualys diz que para consertar completamente esta vulnerabilidade, o kernel deve ser corrigido, e não há nenhuma sugestão de quando isso acontecerá.

Não foi a única vulnerabilidade detectada

No entanto, esta não foi a única grande vulnerabilidade do Linux descoberta nos últimos meses pela Qualys: ao mesmo tempo em que relataram a existência do Sequoia, eles o fizeram com outro chamado CVE-2021-33910.

Isso afeta o systemd (um pacote de software responsável por iniciar o resto dos componentes do Linux após a inicialização) e deixa o sistema vulnerável a um ‘kernel panic’ . Esta segunda vulnerabilidade está presente nesta ferramenta desde abril de 2015.

Para saber mais sobre esta segunda falha, acesse este link.