Discutindo os riscos de segurança do Sentinel Value no motor Chrome V8
O valor sentinel é um valor especial em algoritmos, geralmente utilizado como condição de término em algoritmos de loop ou recursão. No código-fonte do Chrome, existem muitos valores sentinel. Estudos recentes indicam que a divulgação de objetos sentinel específicos pode levar à execução de código arbitrário dentro do sandbox do Chrome.
Este artigo discutirá um novo objeto de valor Sentinel: Uninitialized Oddball. Este método de contorno apareceu pela primeira vez em um relatório de vulnerabilidade, fornecido por um pesquisador de segurança com o código completo. Vale a pena notar que, atualmente, esse método ainda pode ser usado na versão mais recente do V8, e ainda não foi corrigido.
Este método tem uma forte versatilidade:
Em uma vulnerabilidade CVE, o poc inicial é a divulgação de um oddball interno não inicializado.
Em outro relatório de vulnerabilidade CVE, os pesquisadores divulgaram diretamente o UninitializedOddball, embora a cadeia de exploração estivesse incompleta na época, mas já mostrava riscos de segurança.
Um relatório recente sobre vulnerabilidades forneceu um método completo de exploração.
Esses casos ilustram a universalidade e a gravidade do problema. Até agora, um determinado software de comunicação ainda não corrigiu essa vulnerabilidade.
Aplicação do valor sentinel no V8
No código fonte do V8, uma grande quantidade de objetos nativos é definida e eles estão dispostos de forma adjacente na memória. Uma vez que objetos nativos que não deveriam ser expostos sejam revelados ao JavaScript, pode-se realizar a execução de qualquer código dentro do sandbox.
Para validar a eficácia deste método na última versão do V8, podemos modificar a função nativa do V8 para vazar Uninitialized Oddball para o JavaScript.
Contornar a proteção HardenType
Podemos construir código que, quando uma função retorna UninitializedOddball, implementa leitura arbitrária. A análise do código de montagem otimizado revela que a função apenas verifica se os atributos do objeto estão corretos, mas não verifica os valores correspondentes dos atributos, calculando diretamente o deslocamento para obter elementos de array de acordo com a semântica do JavaScript, resultando em confusão de tipos e permitindo leitura arbitrária.
Da mesma forma, qualquer gravação pode ser construída de maneira semelhante. Recomenda-se, ao otimizar a função que retorna elementos de um array, adicionar uma verificação do array map, para evitar calcular diretamente o valor de retorno do deslocamento.
Aviso de riscos de segurança
A análise indica que um determinado software de comunicação ainda não corrigiu essa vulnerabilidade. No sistema x86, devido à falta de compressão de endereços, é possível a leitura e escrita arbitrárias diretamente em relação a todo o processo. Embora o ASLR esteja ativado, devido ao tamanho do arquivo, ainda há uma grande probabilidade de se ler e escrever conteúdo crítico. Combinando métodos como a análise de PE, é possível completar uma cadeia de exploração completa em um curto período de tempo.
Esta vulnerabilidade de segurança não apenas envolve uma única falha, mas também reduziu significativamente a dificuldade de exploração de algumas falhas semelhantes anteriores. Os hackers quase não precisam de pesquisa adicional para realizar a exploração completa, incluindo todas as falhas semelhantes relatadas anteriormente.
Resumo
Este artigo discute brevemente o método para leitura arbitrária através da exploração de Uninitialized Oddball. O V8 contém muitos outros valores Sentinel, que podem apresentar riscos de segurança semelhantes. Isso nos dá algumas pistas:
A divulgação de outros valores Sentinel pode também levar à fuga da sandbox V8?
Devem estas questões ser formalmente consideradas como vulnerabilidades de segurança?
É necessário incluir variáveis relacionadas ao valor Sentinel nos testes de fuzz para descobrir mais problemas potenciais?
De qualquer forma, este tipo de problema pode encurtar significativamente o período em que os hackers conseguem explorar completamente a vulnerabilidade, o que merece uma atenção especial.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
8 Curtidas
Recompensa
8
4
Compartilhar
Comentário
0/400
ArbitrageBot
· 07-11 10:52
Como é que o Google conseguiu isso? Isto consegue ter uma falha?
Ver originalResponder0
SelfSovereignSteve
· 07-10 20:07
Onde está a proteção do navegador?
Ver originalResponder0
StablecoinArbitrageur
· 07-10 19:58
hmm mais uma exploração com 99,8% de chance de ser corrigida antes de qualquer oportunidade de arb significativa...
Ver originalResponder0
DefiPlaybook
· 07-10 19:45
O navegador também teve Airdrop? É possível aproveitar esta oportunidade?
Vulnerabilidade de vazamento de valor Sentinel do motor V8: Análise de um novo método de escape da sandbox do Chrome
Discutindo os riscos de segurança do Sentinel Value no motor Chrome V8
O valor sentinel é um valor especial em algoritmos, geralmente utilizado como condição de término em algoritmos de loop ou recursão. No código-fonte do Chrome, existem muitos valores sentinel. Estudos recentes indicam que a divulgação de objetos sentinel específicos pode levar à execução de código arbitrário dentro do sandbox do Chrome.
Este artigo discutirá um novo objeto de valor Sentinel: Uninitialized Oddball. Este método de contorno apareceu pela primeira vez em um relatório de vulnerabilidade, fornecido por um pesquisador de segurança com o código completo. Vale a pena notar que, atualmente, esse método ainda pode ser usado na versão mais recente do V8, e ainda não foi corrigido.
Este método tem uma forte versatilidade:
Em uma vulnerabilidade CVE, o poc inicial é a divulgação de um oddball interno não inicializado.
Em outro relatório de vulnerabilidade CVE, os pesquisadores divulgaram diretamente o UninitializedOddball, embora a cadeia de exploração estivesse incompleta na época, mas já mostrava riscos de segurança.
Um relatório recente sobre vulnerabilidades forneceu um método completo de exploração.
Esses casos ilustram a universalidade e a gravidade do problema. Até agora, um determinado software de comunicação ainda não corrigiu essa vulnerabilidade.
Aplicação do valor sentinel no V8
No código fonte do V8, uma grande quantidade de objetos nativos é definida e eles estão dispostos de forma adjacente na memória. Uma vez que objetos nativos que não deveriam ser expostos sejam revelados ao JavaScript, pode-se realizar a execução de qualquer código dentro do sandbox.
Para validar a eficácia deste método na última versão do V8, podemos modificar a função nativa do V8 para vazar Uninitialized Oddball para o JavaScript.
Contornar a proteção HardenType
Podemos construir código que, quando uma função retorna UninitializedOddball, implementa leitura arbitrária. A análise do código de montagem otimizado revela que a função apenas verifica se os atributos do objeto estão corretos, mas não verifica os valores correspondentes dos atributos, calculando diretamente o deslocamento para obter elementos de array de acordo com a semântica do JavaScript, resultando em confusão de tipos e permitindo leitura arbitrária.
Da mesma forma, qualquer gravação pode ser construída de maneira semelhante. Recomenda-se, ao otimizar a função que retorna elementos de um array, adicionar uma verificação do array map, para evitar calcular diretamente o valor de retorno do deslocamento.
Aviso de riscos de segurança
A análise indica que um determinado software de comunicação ainda não corrigiu essa vulnerabilidade. No sistema x86, devido à falta de compressão de endereços, é possível a leitura e escrita arbitrárias diretamente em relação a todo o processo. Embora o ASLR esteja ativado, devido ao tamanho do arquivo, ainda há uma grande probabilidade de se ler e escrever conteúdo crítico. Combinando métodos como a análise de PE, é possível completar uma cadeia de exploração completa em um curto período de tempo.
Esta vulnerabilidade de segurança não apenas envolve uma única falha, mas também reduziu significativamente a dificuldade de exploração de algumas falhas semelhantes anteriores. Os hackers quase não precisam de pesquisa adicional para realizar a exploração completa, incluindo todas as falhas semelhantes relatadas anteriormente.
Resumo
Este artigo discute brevemente o método para leitura arbitrária através da exploração de Uninitialized Oddball. O V8 contém muitos outros valores Sentinel, que podem apresentar riscos de segurança semelhantes. Isso nos dá algumas pistas:
A divulgação de outros valores Sentinel pode também levar à fuga da sandbox V8?
Devem estas questões ser formalmente consideradas como vulnerabilidades de segurança?
É necessário incluir variáveis relacionadas ao valor Sentinel nos testes de fuzz para descobrir mais problemas potenciais?
De qualquer forma, este tipo de problema pode encurtar significativamente o período em que os hackers conseguem explorar completamente a vulnerabilidade, o que merece uma atenção especial.