O módulo de segurança da linguagem Move detectou uma vulnerabilidade de estouro de inteiro, que pode levar a ataques que causam a falha do sistema.

robot
Geração do resumo em andamento

Vulnerabilidade de estouro de inteiro descoberta no módulo de segurança de referências Move

Recentemente, uma pesquisa aprofundada descobriu uma nova vulnerabilidade de estouro de inteiro na linguagem Move. Essa vulnerabilidade existe no processo de verificação de segurança de referências, envolvendo alguns conceitos e mecanismos centrais da linguagem Move.

A linguagem Move realiza a verificação de código antes da execução do bytecode, dividida em quatro etapas. Esta nova vulnerabilidade foi encontrada na etapa reference_safety. Esta etapa é responsável por verificar a segurança das referências, incluindo a verificação da existência de referências pendentes, a segurança de acesso a referências mutáveis e a segurança de acesso a referências de armazenamento global, entre outras.

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

O núcleo da verificação de segurança de citações é a análise dos blocos básicos em cada função. Um bloco básico é uma sequência de código que não contém instruções de ramificação, exceto na entrada e na saída. A linguagem Move identifica blocos básicos percorrendo o bytecode e procurando todas as instruções de ramificação e de loop.

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

Durante o processo de verificação, o sistema manterá uma estrutura AbstractState, que contém informações sobre o gráfico de empréstimos e locais, para garantir a segurança das referências usadas na função. O fluxo de verificação executará o código do bloco básico, gerará o estado após a execução e, em seguida, combinará os estados antes e depois da execução, atualizando o estado do bloco e propagando-o para os blocos subsequentes.

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

A vulnerabilidade ocorre na função join_. Quando o comprimento dos parâmetros da função somado ao comprimento das variáveis locais excede 256, o uso do tipo u8 para representar variáveis locais pode levar a um estouro inteiro. Embora a linguagem Move tenha um mecanismo para verificar o número de locais, ele verifica apenas a quantidade de variáveis locais, sem incluir o comprimento dos parâmetros.

Numen Cyber descobriu outra vulnerabilidade crítica na linguagem move

Esta vulnerabilidade de estouro pode levar a um ataque de negação de serviço. Um atacante pode construir um bloco de código em loop que utiliza o estouro para alterar 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 locais, isso resultará em uma falha do sistema.

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

Para demonstrar esta vulnerabilidade, os investigadores forneceram uma prova de conceito (PoC). Ao definir parâmetros específicos e o número de variáveis locais, é possível provocar um estouro de inteiro, levando a um pânico do sistema.

Numen Cyber descobriu uma outra 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 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 outra 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 revela que mesmo linguagens rigorosamente desenhadas podem ter falhas de segurança. Destaca a importância da auditoria de código e a necessidade de considerar mais casos limites no design da linguagem. Para a linguagem Move, recomenda-se aumentar mais verificações de segurança em tempo de execução, em vez de apenas depender dos mecanismos de segurança da fase de validação.

Com a ampla aplicação da linguagem Move no espaço Web3, é crucial investigar e descobrir potenciais vulnerabilidades para melhorar a segurança de todo o ecossistema. Os desenvolvedores e pesquisadores de segurança precisam permanecer vigilantes, acompanhando e aprimorando continuamente o desempenho de segurança da linguagem Move.

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

MOVE-3.27%
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
  • 9
  • Repostar
  • Compartilhar
Comentário
0/400
GateUser-aa7df71evip
· 08-19 18:48
Mais um projeto vai falhar, a explosão vai colapsar.
Ver originalResponder0
TokenVelocityvip
· 08-17 11:11
Trabalhei durante dois anos para sustentar todos, enquanto perdi tudo, e só eu continuo a carregar o peso, 3000 dias de um sonho empreendedor acordado.
Ver originalResponder0
GateUser-0717ab66vip
· 08-16 22:28
Quem transborda, quem é sb
Ver originalResponder0
ForumLurkervip
· 08-16 22:27
move já está a fazer das suas?
Ver originalResponder0
TokenTaxonomistvip
· 08-16 22:23
estatisticamente falando, outro beco sem saída evolutivo para mover... não estou surpreendido, para ser honesto
Ver originalResponder0
SolidityStrugglervip
· 08-16 22:20
As vulnerabilidades de estouro são realmente irritantes...
Ver originalResponder0
RiddleMastervip
· 08-16 22:10
Mais uma vulnerabilidade de overflow, não tem fim.
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)