Aplicação e riscos de segurança do Valor Sentinel no Chrome V8
Sentinel Value é um valor especial frequentemente utilizado em algoritmos, geralmente como condição de término em algoritmos de loop ou recursivos. Esta técnica é amplamente utilizada no código-fonte do Chrome. Recentemente, pesquisadores de segurança descobriram um método para realizar a execução arbitrária de código dentro do sandbox do Chrome ao vazar objetos Sentinel Value específicos.
No motor V8, existem vários objetos nativos que não deveriam ser expostos ao ambiente JavaScript. Além do objeto TheHole, relatado anteriormente, este artigo foca no problema de vazamento do objeto Uninitialized Oddball. Este método ainda pode ser utilizado na versão mais recente do V8 e ainda não foi corrigido.
É importante notar que o método de exploração de objetos Oddball não inicializados tem uma forte universalidade. Várias vulnerabilidades históricas (como CVE-2021-30551, CVE-2022-1486, etc.) envolvem a exploração desse tipo de objeto. A descoberta desse método pode reduzir a dificuldade de exploração das vulnerabilidades relacionadas.
Ao modificar as funções nativas do V8, pode-se facilmente vazar objetos Oddball não inicializados para o ambiente JavaScript. Utilizando esse método, um atacante pode contornar o mecanismo de proteção de fortalecimento de tipos do V8, realizando operações de leitura e escrita de memória relativamente arbitrárias.
No código JavaScript otimizado, devido à falta de verificação do método map do array, a abordagem de calcular diretamente o deslocamento para retornar os valores do array apresenta riscos de segurança. Recomenda-se, ao otimizar a função que retorna elementos do array, adicionar uma validação do método map do array para aumentar a segurança.
O impacto de tais problemas pode ultrapassar o esperado. Algumas aplicações que utilizam versões antigas do motor V8 ainda podem estar em risco. Por exemplo, até ao momento, o Skype ainda não corrigiu esta vulnerabilidade. Em sistemas de 32 bits, devido à falta de um mecanismo de compressão de endereços, os atacantes podem achar mais fácil realizar leituras e gravações de memória arbitrárias.
Em geral, as questões de segurança relacionadas ao Sentinel Value merecem mais atenção. Não apenas o Uninitialized Oddball e o objeto TheHole podem causar riscos de segurança, mas outros Sentinel Values também podem apresentar riscos semelhantes. Recomenda-se incluir esses valores especiais no escopo de testes de fuzzing para descobrir possíveis vetores de exploração.
Independentemente de estas questões serem formalmente consideradas falhas de segurança, elas podem reduzir significativamente o tempo necessário para que um atacante consiga uma exploração completa. Portanto, as partes interessadas devem permanecer vigilantes e corrigir rapidamente 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.
Análise do vazamento de valor Sentinel do motor Chrome V8 e riscos de segurança
Aplicação e riscos de segurança do Valor Sentinel no Chrome V8
Sentinel Value é um valor especial frequentemente utilizado em algoritmos, geralmente como condição de término em algoritmos de loop ou recursivos. Esta técnica é amplamente utilizada no código-fonte do Chrome. Recentemente, pesquisadores de segurança descobriram um método para realizar a execução arbitrária de código dentro do sandbox do Chrome ao vazar objetos Sentinel Value específicos.
No motor V8, existem vários objetos nativos que não deveriam ser expostos ao ambiente JavaScript. Além do objeto TheHole, relatado anteriormente, este artigo foca no problema de vazamento do objeto Uninitialized Oddball. Este método ainda pode ser utilizado na versão mais recente do V8 e ainda não foi corrigido.
É importante notar que o método de exploração de objetos Oddball não inicializados tem uma forte universalidade. Várias vulnerabilidades históricas (como CVE-2021-30551, CVE-2022-1486, etc.) envolvem a exploração desse tipo de objeto. A descoberta desse método pode reduzir a dificuldade de exploração das vulnerabilidades relacionadas.
Ao modificar as funções nativas do V8, pode-se facilmente vazar objetos Oddball não inicializados para o ambiente JavaScript. Utilizando esse método, um atacante pode contornar o mecanismo de proteção de fortalecimento de tipos do V8, realizando operações de leitura e escrita de memória relativamente arbitrárias.
No código JavaScript otimizado, devido à falta de verificação do método map do array, a abordagem de calcular diretamente o deslocamento para retornar os valores do array apresenta riscos de segurança. Recomenda-se, ao otimizar a função que retorna elementos do array, adicionar uma validação do método map do array para aumentar a segurança.
O impacto de tais problemas pode ultrapassar o esperado. Algumas aplicações que utilizam versões antigas do motor V8 ainda podem estar em risco. Por exemplo, até ao momento, o Skype ainda não corrigiu esta vulnerabilidade. Em sistemas de 32 bits, devido à falta de um mecanismo de compressão de endereços, os atacantes podem achar mais fácil realizar leituras e gravações de memória arbitrárias.
Em geral, as questões de segurança relacionadas ao Sentinel Value merecem mais atenção. Não apenas o Uninitialized Oddball e o objeto TheHole podem causar riscos de segurança, mas outros Sentinel Values também podem apresentar riscos semelhantes. Recomenda-se incluir esses valores especiais no escopo de testes de fuzzing para descobrir possíveis vetores de exploração.
Independentemente de estas questões serem formalmente consideradas falhas de segurança, elas podem reduzir significativamente o tempo necessário para que um atacante consiga uma exploração completa. Portanto, as partes interessadas devem permanecer vigilantes e corrigir rapidamente os riscos potenciais.