Técnica de exploração da vulnerabilidade no subsistema tty do núcleo Linux revelada

Pesquisadores da equipe do Google Project Zero publicaram um método de exploração da vulnerabilidade (CVE-2020-29661) na implementação do manipulador ioctl TIOCSPGRP do subsistema tty do núcleo Linux, além de analisar detalhadamente os mecanismos de proteção que poderiam bloquear tais vulnerabilidades.

O erro que causou o problema foi corrigido no núcleo do Linux em 3 de dezembro do ano passado. O problema se manifesta em núcleos até a versão 5.9.13, mas a maioria das distribuições corrigiu o problema em atualizações de pacotes do núcleo oferecidas no ano passado (Debian, RHEL, SUSE, Ubuntu, Fedora, Arch). Uma vulnerabilidade semelhante (CVE-2020-29660) também foi encontrada na implementação da chamada ioctl TIOCGSID, mas ela já foi amplamente corrigida.

O problema é causado por um erro na configuração de bloqueios, levando a uma condição de corrida no código drivers/tty/tty_jobctrl.c, que foi explorado para criar condições de acesso à memória após a liberação (use-after-free), explorado a partir do espaço do usuário por meio de manipulações da chamada ioctl TIOCSPGRP. Um exploit funcional foi demonstrado para elevação de privilégios no Debian 10 com o núcleo 4.19.0-13-amd64.

Na publicação, o foco não está apenas na técnica de criação do exploit funcional, mas também nas ferramentas que existem no núcleo para proteção contra tais vulnerabilidades. A conclusão não é encorajadora; métodos como segmentação de memória em heap e controle de acesso à memória após a liberação não são aplicados na prática, pois causam queda de desempenho, enquanto a proteção baseada em CFI (Control Flow Integrity), que bloqueia exploits em estágios avançados do ataque, precisa de melhorias.

Ao considerar o que poderia mudar a situação a longo prazo, destaca-se a aplicação de analisadores estáticos avançados ou o uso de linguagens que garantem segurança no manuseio da memória, como Rust e dialetos da linguagem C com anotações estendidas (por exemplo, Checked C), na etapa de compilação, verificando o estado de bloqueios, objetos e ponteiros. Entre os métodos de proteção, menciona-se também a ativação do modo panic_on_oops, a conversão de estruturas do núcleo em modo somente leitura e a limitação de acesso a chamadas de sistema através de mecanismos como seccomp.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster