Descobrimos que existem duas sérias vulnerabilidades de lógica nos contratos @AkuDreams. A primeira vulnerabilidade pode causar um ataque de DoS e a segunda vulnerabilidade fará com que os fundos do projeto (mais de 34 milhões de USD) fiquem bloqueados para sempre.
Vulnerabilidade I

A primeira vulnerabilidade existe na função processRefunds. Esta função possui um loop que reembolsará os fundos de cada usuário que deu um lance. No entanto, o licitante pode ser um contrato malicioso que reverte a transação. Isso pode causar a reversão da invocação de processRefunds, e nenhum dos reembolsos dos usuários pode ser bem-sucedido. Felizmente, esta vulnerabilidade não foi explorada.
Sugerimos que o contrato possa tomar as seguintes medidas para reembolsar os usuários.
- Garantir que apenas EOA possa dar lances
- Usar token ERC20, por exemplo, WETH, em vez de ETH
- Ter uma função que permita ao usuário obter o reembolso por conta própria
Vulnerabilidade II

A segunda vulnerabilidade é um bug de software. Na função claimProjectFunds, o proprietário do projeto pode reivindicar o Ether no contrato. No entanto, a declaração require require(refundProgress >= totalBids, "Refunds not yet processed"); possui um bug, que deveria comparar o refundProgress com _bidIndex em vez de totalBids. Devido a essa vulnerabilidade, o requisito nunca será satisfeito, e o Ether (11.539,5 Ether) no contrato pode ficar bloqueado para sempre.
Resumo
Ficamos surpresos novamente (após o caso do NBA NFT ontem) com o fato de como um projeto de alto perfil pode negligenciar práticas básicas de segurança de software. No mínimo, o projeto deveria escrever casos de teste suficientes. Infelizmente, suspeitamos que os projetos estavam ocupados demais para escrever os casos de teste e perderam 3.400 USD para sempre.
Sobre a BlockSec
A BlockSec é uma empresa pioneira em segurança de blockchain, fundada em 2021 por um grupo de especialistas em segurança de renome mundial. A empresa está comprometida em aprimorar a segurança e a usabilidade para o emergente mundo Web3, a fim de facilitar sua adoção em massa. Para isso, a BlockSec oferece serviços de auditoria de segurança para contratos inteligentes e chains EVM, a plataforma Phalcon para desenvolvimento de segurança e bloqueio proativo de ameaças, a plataforma MetaSleuth para rastreamento e investigação de fundos, e a extensão MetaDock para construtores web3 navegarem com eficiência no mundo cripto.
Até o momento, a empresa atendeu mais de 300 clientes estimados, como MetaMask, Uniswap Foundation, Compound, Forta e PancakeSwap, e recebeu dezenas de milhões de dólares americanos em duas rodadas de financiamento de investidores de destaque, incluindo Matrix Partners, Vitalbridge Capital e Fenbushi Capital.
Site oficial: https://blocksec.com/
Conta oficial no Twitter: https://twitter.com/BlockSecTeam



