FERRAMENTAS LINUX: A Arm publica os novos patches do compilador GCC devido a nova vulnerabilidade que afeta o ARMv8-M TrustZone

terça-feira, 24 de agosto de 2021

A Arm publica os novos patches do compilador GCC devido a nova vulnerabilidade que afeta o ARMv8-M TrustZone

 


Confira !!

Tornou-se público na segunda-feira o CVE-2021-35465 como uma nova vulnerabilidade de segurança que afeta vários produtos da Arm. Para hardware não mitigado (ARMv8-M), Arm postou uma série de patches do compilador GCC para contornar o problema.

CVE-2021-35465 é esta nova vulnerabilidade do processador Arm afetando um subconjunto de seus designs - particularmente produtos ARMv8-M e ARMv8.1-M para microcontroladores e outros casos de uso integrados para TrustZone e muito mais. De acordo com a divulgação CVE-2021-35465 :

Certos produtos Arm anteriores a 2021-08-23 não consideravam adequadamente o efeito das exceções em uma instrução VLLDM. Um manipulador não seguro pode ter acesso de leitura ou gravação a parte de um contexto seguro. Isso afeta Arm Cortex-M33 r0p0 a r1p0, Arm Cortex-M35P r0, Arm Cortex-M55 r0p0 a r1p0 e Arm China STAR-MC1 (na configuração STAR SE).

A instrução VLLDM de Arm é para as múltiplas restaurações de carregamento lento de ponto flutuante do conteúdo de registradores de ponto flutuante seguros protegidos por VLSTM. A atualização de segurança do Arm para esta vulnerabilidade explica:

Em um sistema baseado em Arm Cortex-M, quando a unidade de ponto flutuante (FPU) ou extensão de vetor M-Profile (MVE) também conhecida como Helium, é implementada, o processador contém trinta e dois registros 'S' de 32 bits, um status de ponto flutuante, um registro de controle (FPSCR) e um registro de predicação vetorial (VPR, presente apenas com MVE). Se a Extensão de Segurança (TrustZone) for implementada, o software Seguro pode, opcionalmente, utilizar os recursos FPU ou MVE; neste caso, esses registros podem conter informações Seguras.

Para reduzir a sobrecarga de software de salvar e restaurar o contexto seguro ao chamar uma função não segura do mundo seguro e evitar a criação inadvertida de um contexto de ponto flutuante, a arquitetura Armv8-M suporta um par de instruções chamadas VLSTM e VLLDM. Essas instruções permitem que as informações seguras sejam salvas e restauradas automaticamente apenas se a função não segura for chamada e também utilizada pelo recurso FPU ou Hélio. A inserção de VLSTM e VLLDM é normalmente tratada por compiladores C / C ++.

Recentemente, um problema de vulnerabilidade foi encontrado na implementação da instrução VLLDM nos processadores Arm Cortex-M33, Cortex-M35P, Cortex-M55 e Arm China STAR-MC1 (configuração STAR SE). Se a instrução VLLDM for abandonada devido a uma exceção (por exemplo, uma interrupção) quando for parcialmente concluída, é possível para o manipulador não seguro subsequente (que pode ser um manipulador encadeado pela cauda da exceção original) acessar e modificar o parcial valores de registro restaurados.

A Arm publicou agora um conjunto de patches do GCC seguindo suas mitigações baseadas em software recomendadas para esta errata de design. A mitigação é habilitada no ARM com a opção do compilador -mfix-cmse-cve-2021-35465 e será habilitada automaticamente para alvos Cortex M33 / M35P / M55.

A série de patch é essencialmente em duas partes. Os primeiros dois patches são realmente limpezas que primeiro tratam de um problema com o RTL na descrição da máquina para instruções VLLDM e VLSTM e, em seguida, melhoram a confiabilidade do teste para a disponibilidade do CMSE ao executar o conjunto de testes. Os patches restantes então implementam a mitigação em si e adicionam alguns testes adicionais ao conjunto de testes.

Esta mitigação de vulnerabilidade ARMv8-M também deve ser retransmitida para o GCC 11 e GCC 10 séries estáveis ​​atuais. Patches para outros compiladores ARM comuns também são esperados, nomeadamente LLVM.




Fonte

Até a próxima !!

Nenhum comentário:

Postar um comentário