Linux corrige mitigação de SRSO para AMD Zen 3 e Zen 4. Este é um problema que se conhece pelo menos desde agosto passado. A falha AMD Inception, também conhecida como SRSO para o estouro de pilha de retorno especulativo. Os patches do lado do kernel para a mitigação do AMD SRSO foram rapidamente mesclados. Depois disso, houve mais limpezas e correções no código de mitigação do SRSO. Já se passaram alguns meses desde que a fusão na sexta-feira estava corrigindo parte do código de mitigação devido a ser ineficaz.
Desde novembro foi a última vez que vimos a limpeza do AMD SRSO / Inception enquanto uma surpresa na sexta-feira foi novo código da AMD para corrigir a mitigação SRSO para processadores Zen 3 e Zen 4.
Linux corrige mitigação de SRSO para AMD Zen 3 e Zen 4
O engenheiro da AMD Linux, Borislav Petkov, explicou no commit: x86/bugs: Corrija a mitigação SRSO no Zen3/4
A versão original da mitigação corrigiria as chamadas para as rotinas de destreinamento diretamente. Ou seja, a alternativa() em UNTRAIN_RET irá corrigir na CHAMADA para srso_alias_untrain_ret() diretamente.
No entanto, mesmo que commit e7c25c441e9e (“x86/cpu: Cleanup the untrain mess”) tenha sido bem na tentativa de limpar a situação, devido a razões micro-arquitetônicas, a rotina de destreinamento srso_alias_untrain_ret() deve ser o alvo de uma instrução CALL e não de uma instrução JMP como é feito agora.
Remaneje as macros alternativas para fazer isso.
Isso corrige o código de mitigação SRSO que está sendo usado desde meados de agosto.
O patch que corrige a mitigação foi mesclado na sexta-feira antes do lançamento do Linux 6.9-rc2 no domingo. O patch também está marcado para back-porting para a série estável do kernel Linux existente e, portanto, deve trabalhar seu caminho para novos lançamentos de ponto estável nos próximos dias.