O novo kernel Linux 6.8 x86 lança atualização de urgência e reforça a proteção contra bugs de CPU. Enviado esta manhã através do pull request “x86/urgent” antes da chegada do kernel Linux 6.8-rc6 mais tarde. Portanto, trata-se de um conjunto de patches da Intel para garantir que a limpeza de buffers de CPU usando a instrução VERW aconteça no ponto mais recente possível no caminho de código return-to-userspace. Isso está sendo feito para proteger melhor contra bugs da CPU, como o Microarchitectural Data Sampling (MDS).
Nos últimos meses, os engenheiros da Intel Linux trabalharam para atrasar o VERW para limpar buffers microarquitetônicos da CPU para mais tarde no caminho de código de retorno da CPU ao espaço do usuário. O engenheiro da Intel Pawan Gupta explicou nos patches:
A instrução herdada VERW foi sobrecarregada por alguns processadores para limpar buffers de CPU micro-arquiteturais como uma mitigação de bugs de CPU. Esta série move a execução do VERW para um ponto posterior no caminho de saída para o usuário. Isso é necessário porque, em alguns casos, pode ser possível que os dados do kernel sejam acessados após o VERW em arch_exit_to_user_mode(). Tais acessos podem colocar dados em buffers de CPU afetados pelo MDS, por exemplo:
- Os dados do kernel acessados por um NMI entre VERW e return-to-user podem permanecer em buffers de CPU (já que o NMI que retorna ao kernel não executa VERW para limpar buffers de CPU).
- Alyssa relatou que, depois que o VERW é executado, CONFIG_GCC_PLUGIN_STACKLEAK=y esfrega a pilha usada por uma chamada do sistema. Os acessos à memória durante a depuração da pilha podem mover o conteúdo da pilha do kernel para buffers da CPU.
- Quando os registradores salvos do chamador são restaurados após um retorno da função que executa VERW, os acessos à pilha do kernel podem permanecer em buffers da CPU (já que ocorrem após VERW).
Kernel Linux 6.8 x86 lança atualização de urgência e reforça a proteção contra bugs de CPU
Embora esses casos sejam menos práticos de explorar, mover o VERW para mais perto da transição de anel reduz a superfície de ataque.
Isso pode ter algumas pequenas alterações no desempenho como resultado do atraso na compensação do VERW. O foco principal da série de patches com os “bugs da CPU” parece ser em torno dos ataques de canal lateral Microarchitectural Data Sampling (MDS) divulgados há alguns anos.
Os patches através do pedido de pull x86/urgente estão agora aguardando ação de Linus Torvalds mais tarde hoje antes de lançar o kernel de teste Linux 6.8-rc6.