A linguagem Move cita uma vulnerabilidade de verificação de segurança que pode resultar em estouro de inteiros, podendo levar a uma negação de serviço.

robot
Geração do resumo em andamento

Análise da vulnerabilidade de estouro de inteiro na verificação de segurança de referências na linguagem Move

Recentemente, uma nova vulnerabilidade de estouro de inteiro foi descoberta no processo de verificação de segurança do uso da linguagem Move. Esta vulnerabilidade ocorre na etapa de reference_safety da unidade de código de verificação, envolvendo blocos básicos e o mecanismo de segurança de referência na linguagem Move.

A linguagem Move realiza a verificação de código antes da execução do bytecode, dividida em quatro etapas. A verificação de segurança de referências é uma das etapas importantes, usada para verificar se existem referências pendentes, se o acesso a referências mutáveis é seguro, entre outros. O processo de verificação percorre as instruções de bytecode de cada bloco básico.

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

Um bloco básico refere-se a uma sequência de código sem instruções de ramificação, exceto a entrada e a saída. A linguagem Move identifica blocos básicos verificando instruções de ramificação e de loop. A verificação de segurança de referências escaneia as instruções em cada bloco básico para determinar a legalidade das operações de referência.

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

O processo de verificação utiliza a estrutura AbstractState para representar o estado, incluindo dois componentes-chave: locals e o gráfico de empréstimos. A verificação compara os estados antes e depois da execução, funde os resultados e os propaga para os blocos subsequentes.

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 do comprimento das variáveis locais excede 256, ocorre um estouro de inteiro devido ao uso do tipo u8 para iterar sobre locals. Isso pode resultar em um novo mapa de locals diferente do anterior, levando a acessos a índices inexistentes durante uma nova execução, causando uma negação de serviço.

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

O código PoC provoca um estouro de inteiro ao definir um número específico de parâmetros e variáveis locais, resultando na redução do comprimento do mapa de locals. Ao executar novamente, o acesso a um offset que não existe gera, por fim, um panic.

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

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

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

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

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

Esta vulnerabilidade demonstra que mesmo linguagens de tipo estático podem ter problemas de segurança. Recomenda-se aos designers da linguagem Move que adicionem mais verificações de segurança em tempo de execução, em vez de depender apenas das verificações na fase de validação. Isso também reflete a importância da auditoria de código.

MOVE1.59%
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
Web3ExplorerLinvip
· 08-01 00:31
O problema de overflow precisa de auditoria agora
Ver originalResponder0
SignatureDeniedvip
· 07-30 09:30
A qualidade do código precisa continuar a melhorar.
Ver originalResponder0
WagmiOrRektvip
· 07-29 07:39
A auditoria de código é fundamental.
Ver originalResponder0
liquidation_watchervip
· 07-29 07:38
A auditoria deve acompanhar
Ver originalResponder0
WagmiWarriorvip
· 07-29 07:16
Move é realmente perigoso.
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)