Foi identificada uma vulnerabilidade no núcleo do Linux 6.2 (CVE-2023-1998) que desativa a proteção contra ataques da classe Spectre v2, permitindo o acesso à memória de outros processos executados em diferentes threads SMT ou Hyper Threading, mas em um único núcleo físico do processador. A vulnerabilidade pode, entre outras coisas, ser usada para vazar dados entre máquinas virtuais em sistemas de nuvem. O problema afeta apenas o núcleo do Linux 6.2 e é causado pela implementação inadequada de otimizações destinadas a reduzir as significativas sobrecargas ao aplicar a proteção contra Spectre v2. A vulnerabilidade foi corrigida na versão experimental do núcleo do Linux 6.3.
No espaço do usuário, para proteger contra ataques da classe Spectre, os processos podem desativar seletivamente a execução especulativa de instruções usando prctl PR_SET_SPECULATION_CTRL ou utilizar filtragem de chamadas de sistema com base no mecanismo seccomp. De acordo com os pesquisadores que identificaram o problema, a otimização inadequada no núcleo 6.2 deixou a proteção insuficiente. máquinas virtuais em pelo menos um grande provedor de nuvem, apesar da ativação do modo de bloqueio contra ataques spectre-BTI por meio do prctl. A vulnerabilidade também se manifesta em sistemas servidores com o núcleo 6.2, que utiliza a configuração ‘spectre_v2=ibrs’ durante a inicialização.
A essência da vulnerabilidade é que, ao selecionar os modos de proteção IBRS ou eIBRS, as otimizações implementadas desabilitavam a aplicação do mecanismo STIBP (Single Thread Indirect Branch Predictors), necessário para bloquear vazamentos ao usar a tecnologia de múltiplos threads (SMT ou Hyper-Threading). A proteção contra vazamentos entre threads é garantida apenas no modo eIBRS, mas não no IBRS, uma vez que neste último, o bit IBRS, que fornece proteção contra vazamentos entre núcleos lógicos, é limpo por motivos de desempenho ao retornar o controle para o espaço do usuário, o que torna os threads no espaço do usuário desprotegidos contra ataques da classe Spectre v2.
Fonte: opennet.ru
