Novamente ... eles encontraram outra vulnerabilidade no subsistema eBPF

Recentemente saiu a notícia de que identificou uma nova vulnerabilidade (já listado sob CVE-2021-4204) no subsistema eBPF (para variar) ...

E é que o subsistema eBPF não deixou de ser um grande problema de segurança para o Kernel porque facilmente no que foi todo o ano de 2021 duas vulnerabilidades foram reveladas por mês e das quais falamos algumas delas aqui no blog.

Quanto aos detalhes do problema atual, é mencionado que a vulnerabilidade detectada permite que um driver seja executado dentro do kernel do Linux em uma máquina virtual JIT especial e que isso, por sua vez, permite que um usuário local sem privilégios obtenha o escalonamento de privilégios e execute seu código no nível do kernel.

Na descrição do problema, eles mencionam que a vulnerabilidade é devido à verificação incorreta dos programas eBPF transmitidos para execução, uma vez que o subsistema eBPF fornece funções auxiliares, cuja correção é verificada por um verificador especial.

Essa vulnerabilidade permite que invasores locais aumentem os privilégios em
instalações do kernel Linux afetadas. Um atacante deve primeiro obter o
capacidade de executar código de baixo privilégio no sistema de destino para
explorar esta vulnerabilidade.

A falha específica existe na manipulação dos programas eBPF. A questão resulta da falta de validação adequada dos programas eBPF fornecidos pelo usuário antes de executá-los. 

Além disso, algumas das funções requerem que o valor PTR_TO_MEM seja passado como argumento e o verificador deve saber o tamanho da memória associada ao argumento para evitar possíveis problemas de estouro de buffer.

Enquanto para funções bpf_ringbuf_submit e bpf_ringbuf_discard, os dados sobre o tamanho da memória transferida não são relatados ao verificador (é aqui que o problema começa), que o invasor aproveita para poder sobrescrever áreas de memória fora do limite de buffer ao executar código eBPF especialmente criado.

Um invasor pode explorar essa vulnerabilidade para escalar privilégios e executar código no contexto do kernel. OBSERVE que o bpf sem privilégios está desabilitado por padrão na maioria das distribuições.

É mencionado que para um usuário realizar um ataque, o usuário deve ser capaz de carregar seu programa BPF e muitas distribuições recentes do Linux o bloqueiam por padrão (incluindo acesso sem privilégios ao eBPF agora é proibido por padrão no próprio kernel, a partir da versão 5.16).

Por exemplo, é mencionado que a vulnerabilidade pode ser explorado na configuração padrão em uma distribuição que ainda é bastante utilizada e acima de tudo muito popular, pois é Ubuntu 20.04LTS, mas em ambientes como Ubuntu 22.04-dev, Debian 11, openSUSE 15.3, RHEL 8.5, SUSE 15-SP4 e Fedora 33, só se manifesta se o administrador tiver definido o parâmetro kernel.unprivileged_bpf_disabled para 0.

Atualmente, como solução para bloquear a vulnerabilidade, menciona-se que usuários sem privilégios podem ser impedidos de executar programas BPF executando o comando em um terminal:

sysctl -w kernel.unprivileged_bpf_disabled=1

Finalmente, deve ser mencionado que o problema apareceu desde o kernel Linux 5.8 e permanece sem correção (incluindo a versão 5.16) e é por isso que o código de exploração será atrasado por 7 dias E será publicado às 12:00 UTC, ou seja, em 18 de janeiro de 2022.

Com ele Destina-se a dar tempo suficiente para que os patches corretivos sejam disponibilizados dos usuários das diferentes distribuições Linux dentro dos canais oficiais de cada uma delas e tanto os desenvolvedores quanto os usuários podem corrigir essa vulnerabilidade.

Para quem estiver interessado em poder saber sobre o status da formação de atualizações com a eliminação do problema em algumas das principais distribuições, deve saber que elas podem ser rastreadas nestas páginas:  DebianRHELSUSEFedoraUbuntuArch.

Se você interessado em saber mais sobre isso sobre a nota, você pode consultar a declaração original 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: AB Internet Networks 2008 SL
  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.