Vulnerabilidade de overflow de inteiros na linguagem Move exposta, referência à verificação de segurança apresenta riscos.

Reproduzindo a vulnerabilidade de estouro de inteiros na linguagem Move

Recentemente, uma grave vulnerabilidade de estouro de inteiro foi descoberta na linguagem Move. Esta vulnerabilidade ocorre durante a verificação de segurança das referências e pode levar a ataques de negação de serviço. Ao analisar essa vulnerabilidade em profundidade, podemos ter uma compreensão mais profunda da linguagem Move.

A linguagem Move realiza a verificação de código antes de executar o bytecode, dividindo-se em quatro etapas. Esta vulnerabilidade surge na etapa reference_safety. O módulo reference_safety é responsável por validar a legalidade das operações de referência, incluindo a verificação da existência de referências pendentes e se o acesso a referências mutáveis é seguro.

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

O processo de verificação é feito por unidade de função. Para cada função, primeiro são identificados os blocos básicos. Um bloco básico é uma sequência de código contínua, onde apenas nas entradas e saídas podem existir ramificações. Em seguida, cada bloco básico é analisado, gerando os estados antes e depois da execução, e propagando os estados para os blocos subsequentes.

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

O estado contém informações sobre locals e o gráfico de empréstimos. Locals registra informações sobre variáveis locais, enquanto o gráfico de empréstimos representa as relações de referência entre variáveis. O processo de análise irá atualizar continuamente essas informações de estado.

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

A vulnerabilidade ocorre durante o processo de mesclagem de estados. Quando o número total de parâmetros de função e variáveis locais excede 256, ocorre um estouro de inteiro devido ao uso do tipo u8 para representar o índice. Isso leva a erros nas informações do estado mesclado, o que pode resultar em ataques de negação de serviço.

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

Embora a linguagem Move tenha um mecanismo para verificar o número de variáveis locais, não considera o número de parâmetros. Esta omissão levou à criação de vulnerabilidades.

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

Para explorar esta vulnerabilidade, o atacante pode construir um bloco de código em loop, utilizando um estouro para alterar o estado do bloco. Quando executado novamente, devido a informações de estado incorretas, o acesso a variáveis inexistentes pode causar a falha do programa.

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

Esta vulnerabilidade demonstra novamente que, mesmo em linguagens cuidadosamente projetadas, podem existir riscos de segurança. Isso nos lembra da importância da auditoria de código e da necessidade de considerações de segurança mais abrangentes no design de linguagens. Para a linguagem Move, adicionar mais verificações em tempo de execução pode ser uma direção de melhoria.

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 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

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

MOVE1.18%
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
  • 3
  • Republicar
  • Partilhar
Comentar
0/400
GateUser-a606bf0cvip
· 6h atrás
o movimento está muito instável, não acha?
Ver originalResponder0
down_only_larryvip
· 20h atrás
Como é que é move a desabar de novo?
Ver originalResponder0
TommyTeacher1vip
· 20h atrás
Mais uma vez a corrigir bugs!
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)