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údos de terceiros, que são fornecidos apenas para fins informativos (sem representações/garantias) e não devem ser considerados como uma aprovação dos seus pontos de vista pela Gate, nem como aconselhamento financeiro ou profissional. Consulte a Declaração de exoneração de responsabilidade para obter mais informações.
8 gostos
Recompensa
8
4
Republicar
Partilhar
Comentar
0/400
TerraNeverForget
· 16h atrás
O navegador teve grandes problemas novamente.
Ver originalResponder0
BearHugger
· 16h atrás
Outra vez o buraco do V8? Este bug realmente é absurdo.
Ver originalResponder0
MintMaster
· 16h atrás
Putz, dá uma olhada nessa vulnerabilidade hardcore.
Ver originalResponder0
RebaseVictim
· 16h 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.