A equipa do projeto BlockSec descobriu recentemente duas vulnerabilidades graves em um contrato de um colecionável digital. Essas duas vulnerabilidades podem resultar, respectivamente, no bloqueio dos ativos dos usuários e na impossibilidade de retirada dos fundos da equipa do projeto.
A primeira vulnerabilidade está presente na função de processamento de reembolsos. Esta função utiliza um método de loop para reembolsar todos os usuários, mas se algum desses usuários for um contrato malicioso, pode recusar o reembolso e fazer a transação reverter, resultando na incapacidade de completar as operações de reembolso para todos os usuários. Embora essa vulnerabilidade não tenha sido explorada, ainda existe um risco potencial.
Para cenários de reembolso como este, os especialistas recomendam que se adotem as seguintes medidas para aumentar a segurança:
A restrição é que apenas contas pessoais podem participar no projeto
Usar tokens ERC20 como WETH em vez de ativos nativos
Criar um mecanismo que permita aos usuários solicitar reembolsos de forma ativa, evitando operações de reembolso em massa.
O segundo erro é causado por um erro lógico no código. Na função que a equipa do projeto utiliza para retirar fundos, há uma instrução condicional que deveria comparar "progresso do reembolso" e "índice da licitação", mas que erroneamente está a comparar com "número total de licitações". Isso faz com que a condição nunca seja satisfeita, impedindo a equipa do projeto de retirar fundos do contrato. Atualmente, mais de 34 milhões de dólares em ativos estão bloqueados no contrato.
Estas questões destacam novamente a importância de realizar testes abrangentes e auditorias de segurança no desenvolvimento de projetos de blockchain. Especialmente no campo dos colecionáveis digitais, ainda falta uma consciência de segurança e práticas de auditoria adequadas, o que pode levar a perdas económicas significativas. A equipa do projeto precisa estabelecer uma mentalidade básica de segurança, elaborar casos de teste adequados e realizar auditorias de segurança profissionais antes do lançamento, para evitar a ocorrência de erros primários semelhantes.
Ver original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
18 Curtidas
Recompensa
18
4
Compartilhar
Comentário
0/400
BackrowObserver
· 07-11 04:43
A tecnologia é difícil, não é surpreendente que alguém tropece.
Ver originalResponder0
DeadTrades_Walking
· 07-11 04:41
Mais uma vez, contratos inteligentes falharam.
Ver originalResponder0
Ramen_Until_Rich
· 07-11 04:40
Mais uma vulnerabilidade, luto por três segundos.
Ver originalResponder0
MidnightGenesis
· 07-11 04:27
Do código, parece haver um grande problema. Parece que alguém vai ficar Rekt novamente.
BlockSec revela duas grandes vulnerabilidades em contratos de colecionáveis digitais, resultando no bloqueio de 34 milhões de dólares em ativos.
A equipa do projeto BlockSec descobriu recentemente duas vulnerabilidades graves em um contrato de um colecionável digital. Essas duas vulnerabilidades podem resultar, respectivamente, no bloqueio dos ativos dos usuários e na impossibilidade de retirada dos fundos da equipa do projeto.
A primeira vulnerabilidade está presente na função de processamento de reembolsos. Esta função utiliza um método de loop para reembolsar todos os usuários, mas se algum desses usuários for um contrato malicioso, pode recusar o reembolso e fazer a transação reverter, resultando na incapacidade de completar as operações de reembolso para todos os usuários. Embora essa vulnerabilidade não tenha sido explorada, ainda existe um risco potencial.
Para cenários de reembolso como este, os especialistas recomendam que se adotem as seguintes medidas para aumentar a segurança:
O segundo erro é causado por um erro lógico no código. Na função que a equipa do projeto utiliza para retirar fundos, há uma instrução condicional que deveria comparar "progresso do reembolso" e "índice da licitação", mas que erroneamente está a comparar com "número total de licitações". Isso faz com que a condição nunca seja satisfeita, impedindo a equipa do projeto de retirar fundos do contrato. Atualmente, mais de 34 milhões de dólares em ativos estão bloqueados no contrato.
Estas questões destacam novamente a importância de realizar testes abrangentes e auditorias de segurança no desenvolvimento de projetos de blockchain. Especialmente no campo dos colecionáveis digitais, ainda falta uma consciência de segurança e práticas de auditoria adequadas, o que pode levar a perdas económicas significativas. A equipa do projeto precisa estabelecer uma mentalidade básica de segurança, elaborar casos de teste adequados e realizar auditorias de segurança profissionais antes do lançamento, para evitar a ocorrência de erros primários semelhantes.