Vulnerabilidades exploráveis ​​em nf_tables, watch_queue e IPsec foram identificadas no kernel Linux

Várias vulnerabilidades perigosas foram identificadas no kernel do Linux que permitem a um usuário local aumentar seus privilégios no sistema. Protótipos funcionais de explorações foram preparados para todos os problemas em consideração.

  • Uma vulnerabilidade (CVE-2022-0995) no subsistema de rastreamento de eventos watch_queue permite que dados sejam gravados em um buffer fora dos limites na memória do kernel. O ataque pode ser realizado por qualquer usuário sem privilégios e resultar na execução de seu código com direitos de kernel. A vulnerabilidade existe na função watch_queue_set_size() e está associada a uma tentativa de limpar todos os ponteiros de uma lista, mesmo que a memória não tenha sido alocada para eles. O problema ocorre ao construir o kernel com a opção "CONFIG_WATCH_QUEUE=y", que é usada na maioria das distribuições Linux.

    A vulnerabilidade foi corrigida em uma alteração no kernel adicionada em 11 de março. Você pode acompanhar as publicações de atualizações de pacotes em distribuições nestas páginas: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. O protótipo de exploração já está disponível publicamente e permite obter acesso root ao executar no Ubuntu 21.10 com kernel 5.13.0-37.

    Vulnerabilidades exploráveis ​​em nf_tables, watch_queue e IPsec foram identificadas no kernel Linux

  • Vulnerabilidade (CVE-2022-27666) nos módulos do kernel esp4 e esp6 com a implementação de transformações ESP (Encapsulating Security Payload) para IPsec, utilizadas ao utilizar IPv4 e IPv6. A vulnerabilidade permite que um usuário local com privilégios normais sobrescreva objetos na memória do kernel e aumente seus privilégios no sistema. O problema é causado pela falta de reconciliação entre o tamanho da memória alocada e os dados reais recebidos, visto que o tamanho máximo da mensagem pode exceder o tamanho máximo da memória alocada para a estrutura skb_page_frag_refill.

    A vulnerabilidade foi corrigida no kernel em 7 de março (corrigida em 5.17, 5.16.15, etc.). Você pode acompanhar as publicações de atualizações de pacotes em distribuições nestas páginas: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. Um protótipo funcional do exploit, que permite que um usuário comum obtenha acesso root ao Ubuntu Desktop 21.10 na configuração padrão, já foi postado no GitHub. Alega-se que com pequenas alterações o exploit também funcionará no Fedora e no Debian. Vale ressaltar que o exploit foi originalmente preparado para a competição pwn2own 2022, mas os desenvolvedores do kernel identificaram e corrigiram um bug associado a ele, por isso foi decidido divulgar os detalhes da vulnerabilidade.

  • Duas vulnerabilidades (CVE-2022-1015, CVE-2022-1016) no subsistema netfilter do módulo nf_tables, que garante o funcionamento do filtro de pacotes nftables. O primeiro problema permite que um usuário local sem privilégios consiga uma gravação fora dos limites em um buffer alocado na pilha. Um estouro ocorre ao processar expressões nftables formatadas de uma determinada maneira e processadas durante a fase de verificação dos índices especificados por um usuário que tem acesso às regras nftables.

    A vulnerabilidade é causada pelo fato de os desenvolvedores terem implícito que o valor de "enum nft_registers reg" era um único byte, quando quando certas otimizações eram habilitadas, o compilador, de acordo com a especificação C89, poderia usar um valor de 32 bits para isso . Devido a esse recurso, o tamanho utilizado na verificação e alocação de memória não corresponde ao tamanho real dos dados na estrutura, o que faz com que a cauda da estrutura seja sobreposta aos ponteiros da pilha.

    O problema pode ser explorado para executar código no nível do kernel, mas um ataque bem-sucedido requer acesso a nftables, que pode ser obtido em um namespace de rede separado com direitos CLONE_NEWUSER ou CLONE_NEWNET (por exemplo, se você puder executar um contêiner isolado). A vulnerabilidade também está intimamente relacionada às otimizações utilizadas pelo compilador, que, por exemplo, são habilitadas ao construir no modo “CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y”. A exploração da vulnerabilidade é possível a partir do kernel Linux 5.12.

    A segunda vulnerabilidade no netfilter é causada pelo acesso a uma área de memória já liberada (use-after-free) no manipulador nft_do_chain e pode levar ao vazamento de áreas não inicializadas da memória do kernel, que podem ser lidas por meio de manipulações com expressões nftables e usadas, por exemplo, para determinar endereços de ponteiros durante explorações de desenvolvimento para outras vulnerabilidades. A exploração da vulnerabilidade é possível a partir do kernel Linux 5.13.

    As vulnerabilidades são abordadas nos patches de kernel atuais 5.17.1, 5.16.18, 5.15.32, 5.10.109, 5.4.188, 4.19.237, 4.14.274 e 4.9.309. Você pode acompanhar as publicações de atualizações de pacotes em distribuições nestas páginas: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux. O pesquisador que identificou os problemas anunciou a preparação de exploits funcionais para ambas as vulnerabilidades, que estão previstos para serem publicados em poucos dias, após as distribuições lançarem atualizações para os pacotes do kernel.

Fonte: opennet.ru

Adicionar um comentário