Eles descobriram uma vulnerabilidade no subsistema Linux eBPF

Recentemente, a notícia de que uma vulnerabilidade foi identificada (CVE-2021-29154) no subsistema eBPF, que pPermite a execução de rastreamento, análise de subsistema e controladores de controle de tráfego rodando dentro do kernel Linux em uma máquina virtual JIT especial que permite que um usuário local execute seu código no nível do kernel.

De acordo com os pesquisadores que identificaram a vulnerabilidade, eles foram capazes de desenvolver um protótipo funcional de um exploit para sistemas x86 de 32 e 64 bits que pode ser usado por um usuário sem privilégios.

Ao mesmo tempo, A Red Hat observa que a gravidade do problema depende da disponibilidade da chamada de sistema eBPF. para o usuário. Por exemplo, no RHEL e na maioria das outras distribuições Linux por padrão, a vulnerabilidade pode ser explorada quando BPF JIT está habilitado e o usuário tem direitos CAP_SYS_ADMIN.

Foi descoberto um problema no kernel do Linux que eles podem abusar
usuários locais sem privilégios para escalar privilégios.

O problema é como os compiladores BPF JIT calculam para algumas arquiteturas
Deslocamentos de ramificação ao gerar código de máquina. Isso pode ser abusado
para criar código de máquina anômalo e executá-lo no modo kernel,
onde o fluxo de controle é sequestrado para executar código inseguro.

E é que eles detalham isso o problema é causado por um erro que é gerado ao calcular o deslocamento das instruções de ramificação durante o compilador JIT que gera o código de máquina.

Em particular, menciona-se que ao gerar as instruções de ramal, não se leva em consideração que o deslocamento pode mudar após passar pela etapa de otimização, de modo que esta falha pode ser utilizada para gerar código de máquina anômalo e executá-lo no nível. Kernel .

Notavelmente Esta não é a única vulnerabilidade no subsistema eBPF que se tornou conhecida nos últimos anos, já que no final de março, mais duas vulnerabilidades foram identificadas no kernel (CVE-2020-27170, CVE-2020-27171), que fornecem a capacidade de usar o eBPF para contornar a proteção contra vulnerabilidades da classe Spectre, que permitem que o conteúdo da memória do kernel seja determinado e que resulta na criação de condições para a execução especulativa de certas operações.

O ataque Spectre requer a presença de uma sequência específica de comandos no código privilegiado, levando à execução especulativa de instruções. No eBPF, várias maneiras foram encontradas gerar tais instruções por meio de manipulações com programas BPF transmitidos para sua execução.

  • A vulnerabilidade CVE-2020-27170 é causada por manipulações de ponteiro no verificador BPF, que faz com que operações especulativas acessem uma área fora do buffer.
  • A vulnerabilidade CVE-2020-27171 está relacionada a um bug de underflow de inteiro ao trabalhar com ponteiros, levando a acesso especulativo a dados fora do buffer.

Esses problemas já foram corrigidos nas versões do kernel 5.11.8, 5.10.25, 5.4.107, 4.19.182 e 4.14.227 e foram incluídos nas atualizações do kernel para a maioria das distribuições Linux. Os pesquisadores prepararam um protótipo de exploração que permite a um usuário sem privilégios recuperar dados da memória do kernel.

Quanto a uma das soluções que proposto na Red Hat é:

Mitigação:

Esse problema não afeta a maioria dos sistemas por padrão. Um administrador deve ter habilitado o BPF JIT para ser afetado.

Ele pode ser desativado imediatamente com o comando:

# echo 0 > /proc/sys/net/core/bpf_jit_enable

Ou pode ser desabilitado para todas as inicializações subsequentes do sistema, definindo um valor em /etc/sysctl.d/44-bpf -jit-disable

## start file ##
net.core.bpf_jit_enable=0</em>
end file ##

Finalmente se você estiver interessado em saber mais sobre isso sobre esta vulnerabilidade, você pode verificar os detalhes em o seguinte link.

Vale ressaltar que o problema persiste até a versão 5.11.12 (inclusive) e ainda não foi resolvido na maioria das distribuições, embora a correção já tenha ocorrido. disponível como um patch.


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.