O mecanismo de segurança de referência da linguagem Move descobriu uma vulnerabilidade de estouro de inteiro que afeta o AptosMoveEVM

robot
Geração do resumo em andamento

Descoberta de nova vulnerabilidade de estouro de inteiro no mecanismo de segurança de referências da linguagem Move

Recentemente, pesquisadores de segurança descobriram uma nova vulnerabilidade de estouro de inteiro ao analisar profundamente o Aptos MoveEVM. Esta vulnerabilidade existe no processo de verificação de segurança de referência da linguagem Move, especificamente na etapa reference_safety.

Numen Cyber descobriu uma vulnerabilidade crítica na linguagem move

A linguagem Move realiza a validação da unidade de código antes da execução do bytecode, dividindo-se em 4 etapas. A validação de segurança de referências é uma das etapas importantes, utilizada principalmente para garantir que não haja referências pendentes, que o acesso a referências mutáveis seja seguro e que o acesso a referências de armazenamento global seja seguro, entre outros.

Numen Cyber descobriu uma alta vulnerabilidade na linguagem move

A essência da verificação de segurança é analisar os blocos básicos dentro de cada função. Um bloco básico refere-se a uma sequência de código que não possui instruções de ramificação, exceto na entrada e na saída. O Move determina os blocos básicos percorrendo o bytecode e procurando todas as instruções de ramificação e de loop.

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

O processo de validação usa a estrutura AbstractState para representar o estado, que contém duas partes: o grafo de empréstimos e os locais. Durante a validação, será gerado um estado pós-execução do código do bloco básico, que será então combinado com o estado prévio para atualizar o estado do bloco e propagá-lo para os blocos subsequentes. Este processo é semelhante à ideia Sea of Nodes no V8 turbofan.

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

A vulnerabilidade aparece na função join_. Quando a soma do comprimento dos parâmetros da função e do comprimento das variáveis locais é superior a 256, o uso do tipo u8 para iterar sobre locais pode causar um estouro de inteiro. Embora o Move tenha um processo de verificação do número de locais, ele apenas verifica os locais e não inclui o comprimento dos parâmetros.

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 outra vulnerabilidade crítica na linguagem move

Numen Cyber descobriu uma alta vulnerabilidade na linguagem move

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

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

Numen Cyber descobriu mais uma 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

Aproveitando esta vulnerabilidade, um atacante pode construir um bloco de código em loop, utilizando o overflow para alterar o estado do bloco. Quando executado novamente, se o índice que a instrução precisa acessar não existir no novo mapa de locais, isso resultará em DoS.

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

Esta vulnerabilidade mais uma vez demonstra que até mesmo linguagens como Move, que valorizam a segurança, podem apresentar problemas. Recomenda-se que os designers da linguagem Move implementem mais verificações em tempo de execução, em vez de depender apenas das verificações de segurança na fase de validação. Ao mesmo tempo, é importante lembrar aos desenvolvedores a importância da auditoria de código.

Ver original
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.
  • Recompensa
  • 5
  • Compartilhar
Comentário
0/400
BoredWatchervip
· 5h atrás
Este bug é completamente ridículo, como pode ser tão primitivo?
Ver originalResponder0
WalletInspectorvip
· 5h atrás
Ah, usar Rust é melhor do que usar Move.
Ver originalResponder0
MemecoinTradervip
· 5h atrás
lmao outro l1 é rekt... clássico vazamento de alpha de overflow de inteiro
Ver originalResponder0
LidoStakeAddictvip
· 5h atrás
O Move está com problemas novamente. Tsc tsc.
Ver originalResponder0
BuyHighSellLowvip
· 5h atrás
Já estou a desistir de novo. Que tudo se destrua e comece de novo.
Ver originalResponder0
  • Marcar
Faça trade de criptomoedas em qualquer lugar e a qualquer hora
qrCode
Escaneie o código para baixar o app da Gate
Comunidade
Português (Brasil)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)