Aplicação do Valor Sentinela no Chrome V8 e os seus riscos de segurança
Existem vários objetos especiais Sentinel Value no motor V8, como TheHole e Uninitialized Oddball. Esses objetos não deveriam vazar para o ambiente JavaScript, mas certas vulnerabilidades podem fazer com que eles sejam expostos, levando a problemas de segurança.
Recentemente, investigadores descobriram que a divulgação de objetos Uninitialized Oddball pode contornar o mecanismo de proteção HardenType do V8. Este método apareceu pela primeira vez em um relatório de problemas submetido por um membro da equipe Project Zero e ainda é eficaz na versão mais recente do V8.
Este método de contorno é universal e pode ser usado para explorar várias vulnerabilidades históricas, como CVE-2021-30551, CVE-2022-1486, entre outras. Ele reduz a dificuldade de exploração de vulnerabilidades, tornando possível a execução remota de código apenas com a revelação de objetos Uninitialized Oddball.
Para validar este método, pode-se modificar a função nativa %TheHole() do V8, de modo que ela retorne um objeto Oddball não inicializado. Os testes mostraram que isso realmente pode permitir a leitura de memória relativamente arbitrária.
No código JavaScript otimizado, o V8 não verifica adequadamente o tipo dos elementos do array, calculando e retornando valores diretamente por deslocamento, o que leva a confusão de tipos e leitura arbitrária. Recomenda-se adicionar verificações de map do array durante o processo de otimização para evitar essa situação.
A descoberta deste método de contorno destaca algumas questões importantes:
Outros objetos Sentinel Value podem ser igualmente perigosos se expostos.
Existe ainda controvérsia sobre se questões relacionadas devem ser consideradas vulnerabilidades de segurança formais.
Na teste de fuzzing, pode-se considerar a introdução do Valor Sentinel como variável.
De qualquer forma, este tipo de problema irá reduzir significativamente o tempo que os hackers levam para explorar completamente, o que merece grande atenção. As empresas de software relevantes devem corrigir rapidamente as versões afetadas para reduzir os riscos potenciais.
Esta página pode conter conteúdo de terceiros, que é fornecido apenas para fins informativos (não para representações/garantias) e não deve ser considerada como um endosso de suas opiniões pela Gate nem como aconselhamento financeiro ou profissional. Consulte a Isenção de responsabilidade para obter detalhes.
8 Curtidas
Recompensa
8
4
Repostar
Compartilhar
Comentário
0/400
TerraNeverForget
· 14h atrás
O navegador teve grandes problemas novamente.
Ver originalResponder0
BearHugger
· 14h atrás
Outra vez o buraco do V8? Este bug realmente é absurdo.
Ver originalResponder0
MintMaster
· 15h atrás
Putz, dá uma olhada nessa vulnerabilidade hardcore.
Ver originalResponder0
RebaseVictim
· 15h atrás
Mais uma armadilha do Chrome, um dia normal de falhas...
Vazamento do Valor Sentinel do motor V8 gera riscos de segurança, é necessário estar atento
Aplicação do Valor Sentinela no Chrome V8 e os seus riscos de segurança
Existem vários objetos especiais Sentinel Value no motor V8, como TheHole e Uninitialized Oddball. Esses objetos não deveriam vazar para o ambiente JavaScript, mas certas vulnerabilidades podem fazer com que eles sejam expostos, levando a problemas de segurança.
Recentemente, investigadores descobriram que a divulgação de objetos Uninitialized Oddball pode contornar o mecanismo de proteção HardenType do V8. Este método apareceu pela primeira vez em um relatório de problemas submetido por um membro da equipe Project Zero e ainda é eficaz na versão mais recente do V8.
Este método de contorno é universal e pode ser usado para explorar várias vulnerabilidades históricas, como CVE-2021-30551, CVE-2022-1486, entre outras. Ele reduz a dificuldade de exploração de vulnerabilidades, tornando possível a execução remota de código apenas com a revelação de objetos Uninitialized Oddball.
Para validar este método, pode-se modificar a função nativa %TheHole() do V8, de modo que ela retorne um objeto Oddball não inicializado. Os testes mostraram que isso realmente pode permitir a leitura de memória relativamente arbitrária.
No código JavaScript otimizado, o V8 não verifica adequadamente o tipo dos elementos do array, calculando e retornando valores diretamente por deslocamento, o que leva a confusão de tipos e leitura arbitrária. Recomenda-se adicionar verificações de map do array durante o processo de otimização para evitar essa situação.
A descoberta deste método de contorno destaca algumas questões importantes:
De qualquer forma, este tipo de problema irá reduzir significativamente o tempo que os hackers levam para explorar completamente, o que merece grande atenção. As empresas de software relevantes devem corrigir rapidamente as versões afetadas para reduzir os riscos potenciais.