Vulnerabilidade de estouro de inteiros na linguagem Move: risco de referência à validação de segurança

A linguagem Move apresenta novamente uma vulnerabilidade crítica: o estouro de inteiro pode levar à falha do nó.

Recentemente, após uma análise aprofundada da linguagem Move por pesquisadores de segurança, foi descoberto um novo vulnerabilidade de overflow de inteiro. Esta vulnerabilidade ocorre durante o processo de verificação de segurança de referências da linguagem Move, podendo levar à falha do nó.

A linguagem Move realiza a validação de código antes de executar o bytecode, dividindo-se em quatro etapas. A vulnerabilidade descoberta desta vez existe na etapa reference_safety. Esta etapa é principalmente utilizada para verificar a segurança das referências, incluindo a verificação de referências pendentes, se o acesso a referências mutáveis é seguro, entre outros.

Numen Cyber descobriu uma alta vulnerabilidade na linguagem move

A ativação de vulnerabilidades está relacionada ao conceito de bloco básico na linguagem Move. Um bloco básico é uma sequência de código sem instruções de ramificação, exceto a entrada e a saída. O Move identifica blocos básicos percorrendo o bytecode e procurando instruções de ramificação.

Durante o processo de verificação de segurança de referências, o sistema escaneia as instruções de bytecode em cada bloco básico, avaliando se todas as operações de referência são legais. Este processo utiliza a estrutura AbstractState, que contém dois componentes importantes: o grafo de empréstimos e os locais.

Numen Cyber descobriu uma nova vulnerabilidade crítica na linguagem move

A vulnerabilidade ocorre na função join_. Quando a soma do comprimento dos parâmetros e o comprimento das variáveis locais excede 256, pode ocorrer um estouro de inteiro devido ao uso do tipo u8 para representar o índice local. Embora o Move tenha um mecanismo para verificar o número de locals, o comprimento dos parâmetros não está incluído.

Numen Cyber descobriu uma nova vulnerabilidade crítica na linguagem move

Usando essa vulnerabilidade de overflow, um atacante pode construir um bloco de código em loop que altera o estado do bloco. Quando o bloco básico é executado novamente, se o índice que a instrução precisa acessar não existir no novo mapa de locals, isso causará uma falha no programa.

Os pesquisadores forneceram uma prova de conceito ( PoC ) código, demonstrando como explorar essa vulnerabilidade. Ao configurar parâmetros específicos e a quantidade de variáveis locais, é possível reduzir o comprimento do mapa locals para 8. Na próxima execução, tentar acessar o índice inexistente 57 resultará em panic.

Numen Cyber descobriu uma nova vulnerabilidade crítica na linguagem move

Numen Cyber descobriu uma nova vulnerabilidade crítica na linguagem move

Numen Cyber descobriu uma nova vulnerabilidade crítica na linguagem move

Numen Cyber descobriu uma nova vulnerabilidade crítica na linguagem move

Numen Cyber descobriu uma nova vulnerabilidade crítica na linguagem move

Numen Cyber descobriu uma nova vulnerabilidade crítica na linguagem move

Numen Cyber descobriu uma nova vulnerabilidade crítica na linguagem move

Numen Cyber descobre uma nova vulnerabilidade crítica na linguagem move

Numen Cyber descobriu uma nova vulnerabilidade crítica na linguagem move

Numen Cyber descobriu uma nova vulnerabilidade crítica na linguagem move

Numen Cyber descobriu uma nova vulnerabilidade crítica na linguagem move

Esta vulnerabilidade prova mais uma vez que não existe código absolutamente seguro. Embora a linguagem Move tenha verificação estática antes da execução, ainda pode ser contornada por um estouro de inteiros. Os pesquisadores recomendam que os designers da linguagem Move adicionem mais códigos de verificação em tempo de execução para evitar que problemas semelhantes ocorram.

Atualmente, a equipe de pesquisa descobriu outra vulnerabilidade na linguagem Move, e compartilhará mais detalhes posteriormente. Essas descobertas têm importância significativa para a melhoria da segurança da linguagem Move.

Numen Cyber descobriu uma vulnerabilidade crítica na linguagem move

Ver original
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.
  • Recompensa
  • 4
  • Partilhar
Comentar
0/400
PositionPhobiavip
· 22h atrás
Quantas armadilhas há neste código? Um que consiga passar já é uma vitória.
Ver originalResponder0
TradFiRefugeevip
· 23h atrás
move esta segurança ainda se brinca com o que
Ver originalResponder0
APY追逐者vip
· 23h atrás
Outra queda, a credibilidade do Move...
Ver originalResponder0
MemeEchoervip
· 23h atrás
move teve problemas novamente
Ver originalResponder0
  • Pino
Negocie cripto em qualquer lugar e a qualquer hora
qrCode
Digitalizar para transferir a aplicação Gate
Novidades
Português (Portugal)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)