A equipe BlockSec recentemente descobriu duas vulnerabilidades críticas em um contrato de colecionáveis digitais. Este contrato está localizado na rede Ethereum, e uma das vulnerabilidades pode levar o contrato a sofrer um ataque de negação de serviço, resultando no bloqueio dos ativos dos usuários. Felizmente, essa vulnerabilidade não foi explorada. A outra vulnerabilidade, mais grave, resultou no bloqueio permanente de mais de 34 milhões de dólares em fundos do projeto dentro do contrato, impossibilitando a retirada.
A primeira vulnerabilidade está na função de processamento de reembolsos. Essa função faz reembolsos para todos os usuários em um loop, mas se houver um usuário com um contrato malicioso, ele pode recusar o reembolso, resultando em um rollback da transação, afetando assim as operações de reembolso de todos os usuários. Para evitar problemas semelhantes, recomenda-se que a equipe do projeto considere as seguintes maneiras seguras de reembolso:
A restrição é que apenas contas de usuários comuns podem participar do projeto
Utilize tokens embrulhados em vez de tokens nativos
Criar um mecanismo que permita ao usuário solicitar reembolso ativamente, evitando reembolsos em massa
A segunda vulnerabilidade é causada por um erro lógico no código. Na função de extração de fundos do projeto, existe uma declaração condicional que compara a variável errada. Isso faz com que a condição nunca seja satisfeita, e a equipe do projeto não consiga extrair os fundos do contrato. Atualmente, mais de 34 milhões de dólares em ativos estão bloqueados no contrato.
Este incidente destaca mais uma vez que mesmo projetos conhecidos podem apresentar erros fundamentais. A equipe de desenvolvimento precisa elaborar casos de teste adequados durante o processo de desenvolvimento do projeto e ter uma consciência básica de segurança. Embora a auditoria de segurança tenha se tornado uma prática comum no campo das finanças descentralizadas, na área de projetos de colecionáveis digitais, a auditoria de segurança parece ainda não ter recebido a devida atenção. Essa negligência resultou diretamente em enormes perdas financeiras.
Este evento deve chamar a atenção da indústria, lembrando todos os desenvolvedores de projetos de blockchain a darem importância à segurança do código e a fortalecerem os processos de auditoria de segurança, para evitar que vulnerabilidades semelhantes ocorram novamente. Ao mesmo tempo, também destaca a importância de equipes de segurança profissionais na rápida evolução da indústria de blockchain.
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.
34 milhões de dólares estão bloqueados, a falha no contrato de colecionáveis digitais soa o alarme de segurança
A equipe BlockSec recentemente descobriu duas vulnerabilidades críticas em um contrato de colecionáveis digitais. Este contrato está localizado na rede Ethereum, e uma das vulnerabilidades pode levar o contrato a sofrer um ataque de negação de serviço, resultando no bloqueio dos ativos dos usuários. Felizmente, essa vulnerabilidade não foi explorada. A outra vulnerabilidade, mais grave, resultou no bloqueio permanente de mais de 34 milhões de dólares em fundos do projeto dentro do contrato, impossibilitando a retirada.
A primeira vulnerabilidade está na função de processamento de reembolsos. Essa função faz reembolsos para todos os usuários em um loop, mas se houver um usuário com um contrato malicioso, ele pode recusar o reembolso, resultando em um rollback da transação, afetando assim as operações de reembolso de todos os usuários. Para evitar problemas semelhantes, recomenda-se que a equipe do projeto considere as seguintes maneiras seguras de reembolso:
A segunda vulnerabilidade é causada por um erro lógico no código. Na função de extração de fundos do projeto, existe uma declaração condicional que compara a variável errada. Isso faz com que a condição nunca seja satisfeita, e a equipe do projeto não consiga extrair os fundos do contrato. Atualmente, mais de 34 milhões de dólares em ativos estão bloqueados no contrato.
Este incidente destaca mais uma vez que mesmo projetos conhecidos podem apresentar erros fundamentais. A equipe de desenvolvimento precisa elaborar casos de teste adequados durante o processo de desenvolvimento do projeto e ter uma consciência básica de segurança. Embora a auditoria de segurança tenha se tornado uma prática comum no campo das finanças descentralizadas, na área de projetos de colecionáveis digitais, a auditoria de segurança parece ainda não ter recebido a devida atenção. Essa negligência resultou diretamente em enormes perdas financeiras.
Este evento deve chamar a atenção da indústria, lembrando todos os desenvolvedores de projetos de blockchain a darem importância à segurança do código e a fortalecerem os processos de auditoria de segurança, para evitar que vulnerabilidades semelhantes ocorram novamente. Ao mesmo tempo, também destaca a importância de equipes de segurança profissionais na rápida evolução da indústria de blockchain.