A equipa do projeto BlockSec descobriu recentemente duas vulnerabilidades graves em um contrato de colecionáveis digitais. Essas duas vulnerabilidades podem levar ao bloqueio dos ativos dos usuários e à incapacidade da equipa do projeto de retirar mais de 34 milhões de dólares.
A primeira vulnerabilidade está relacionada à funcionalidade de reembolso. A função de reembolso no contrato utiliza um loop para reembolsar todos os usuários, mas se algum desses usuários for um contrato malicioso, pode recusar o reembolso e causar a falha de toda a transação. Isso impedirá que todos os usuários recebam o reembolso. Felizmente, essa vulnerabilidade não foi explorada.
Para projetos que necessitam de reembolso, recomenda-se tomar as seguintes medidas de segurança:
A participação é restrita apenas a contas externas (EOA)
Utilizar tokens ERC20 como WETH, em vez de ativos nativos
Criar um mecanismo que permita aos utilizadores solicitar reembolsos ativamente, evitando reembolsos em massa.
O segundo erro é um erro de código. Na função de extração de fundos do projeto, há um erro de verificação de condição. A função deveria comparar o progresso do reembolso com o índice da oferta, mas, por engano, comparou-o com o número total de ofertas. Como o progresso do reembolso é sempre menor que o número total de ofertas e não aumenta mais, a condição nunca pode ser satisfeita. Isso impede que a equipa do projeto extraia os fundos bloqueados no contrato.
Estas vulnerabilidades destacam novamente que projetos conhecidos também podem apresentar erros básicos. A equipa do projeto precisa de escrever casos de teste adequados e ter uma consciência básica de segurança. Embora as auditorias de segurança se tenham tornado uma prática comum no campo das finanças descentralizadas, ainda são insuficientes em projetos de colecionáveis digitais, e este incidente causou perdas significativas.
Este evento lembra-nos que, mesmo os projetos mais destacados, podem ter vulnerabilidades sérias. Ele enfatiza a importância de realizar auditorias de segurança abrangentes no desenvolvimento de projetos de blockchain, especialmente ao lidar com grandes quantias de dinheiro. A equipa do projeto deve dar mais atenção à segurança dos contratos, para evitar que erros dispendiosos semelhantes ocorram.
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.
11 gostos
Recompensa
11
4
Partilhar
Comentar
0/400
QuorumVoter
· 08-04 12:28
cair麻了这合约 Quem se atreve a colocar dinheiro nisso
Ver originalResponder0
Ser_APY_2000
· 08-04 12:20
Trinta milhões de dólares ficaram assim bloqueados? Ai ai... realmente absurdo
Ver originalResponder0
MidnightMEVeater
· 08-04 12:12
Novamente foi bloqueado? Esse grupo de idiotas merece ser como as sobras na geladeira.
Ver originalResponder0
StakeTillRetire
· 08-04 12:05
É realmente difícil conseguir o reembolso do imposto de inteligência.
BlockSec encontrou duas grandes vulnerabilidades em contratos de colecionáveis digitais, 34 milhões de dólares em fundos estão presos.
A equipa do projeto BlockSec descobriu recentemente duas vulnerabilidades graves em um contrato de colecionáveis digitais. Essas duas vulnerabilidades podem levar ao bloqueio dos ativos dos usuários e à incapacidade da equipa do projeto de retirar mais de 34 milhões de dólares.
A primeira vulnerabilidade está relacionada à funcionalidade de reembolso. A função de reembolso no contrato utiliza um loop para reembolsar todos os usuários, mas se algum desses usuários for um contrato malicioso, pode recusar o reembolso e causar a falha de toda a transação. Isso impedirá que todos os usuários recebam o reembolso. Felizmente, essa vulnerabilidade não foi explorada.
Para projetos que necessitam de reembolso, recomenda-se tomar as seguintes medidas de segurança:
O segundo erro é um erro de código. Na função de extração de fundos do projeto, há um erro de verificação de condição. A função deveria comparar o progresso do reembolso com o índice da oferta, mas, por engano, comparou-o com o número total de ofertas. Como o progresso do reembolso é sempre menor que o número total de ofertas e não aumenta mais, a condição nunca pode ser satisfeita. Isso impede que a equipa do projeto extraia os fundos bloqueados no contrato.
Estas vulnerabilidades destacam novamente que projetos conhecidos também podem apresentar erros básicos. A equipa do projeto precisa de escrever casos de teste adequados e ter uma consciência básica de segurança. Embora as auditorias de segurança se tenham tornado uma prática comum no campo das finanças descentralizadas, ainda são insuficientes em projetos de colecionáveis digitais, e este incidente causou perdas significativas.
Este evento lembra-nos que, mesmo os projetos mais destacados, podem ter vulnerabilidades sérias. Ele enfatiza a importância de realizar auditorias de segurança abrangentes no desenvolvimento de projetos de blockchain, especialmente ao lidar com grandes quantias de dinheiro. A equipa do projeto deve dar mais atenção à segurança dos contratos, para evitar que erros dispendiosos semelhantes ocorram.