Back to Blog

Como uma Vulnerabilidade Foi Corrigida Silenciosamente pela Coin98

Code Auditing
16 de janeiro de 2022
3 min read

Na última sexta-feira, nosso sistema de monitoramento detectou um ataque ao contrato inteligente da coin98 (0x8aaf408e06feed6a6a6182ea3c464035748b9b31 — o contrato vítima) na BSC. Imediatamente enviamos uma mensagem direta ao proprietário do projeto pelo Twitter, mas não obtivemos resposta. Como a vulnerabilidade ainda existia naquele momento, decidimos não torná-la pública. Então, algumas horas depois, descobrimos que o proprietário do projeto havia criado um novo contrato que corrigiu a vulnerabilidade. Sendo assim, é seguro para nós resumirmos a vulnerabilidade e a correção aqui.

Transação de ataque e a causa raiz

A transação identificada pelo nosso sistema de monitoramento interno chamou nossa atenção. Após uma investigação cuidadosa, confirmamos que ela se deve ao controle de acesso do parâmetro route (que representa o roteador de fato) na função swapExactTokensForTokens, conforme a seguir:

Este contrato confiou cegamente no route e então invocou a função swapExactTokensForTokens do roteador. Antes disso, ele aprova todos os tokens pertencentes ao contrato vítima para o route. No entanto, o route pode ser fornecido pelo atacante. Nesse caso, o atacante pode transferir todos os tokens da vítima para si mesmo e, em seguida, trocá-los por WBNB para obter lucro.

A seguir está uma das transações de ataque.

A correção silenciosa da vulnerabilidade

Enviamos uma mensagem direta ao proprietário do projeto no Twitter na última sexta-feira, mas não obtivemos resposta. Em seguida, verificamos novamente o contrato hoje e descobrimos que um novo contrato inteligente (0x83f25d16bdf91f51120032f264dad0e1ab1c8227) foi implantado. Este novo contrato possui uma lista de permissões para o route:

Conclusão

Já vimos muitos casos em que o parâmetro passado é cegamente confiado pelo contrato inteligente. Isso DE FATO cria uma grave falha de segurança.

NÃO CONFIE EM NENHUM PARÂMETRO QUE ESTEJA FORA DO SEU CONTROLE!

Sobre a BlockSec

A BlockSec é uma empresa pioneira em segurança 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 de contratos inteligentes e cadeias EVM, a plataforma Phalcon para desenvolvimento seguro e bloqueio proativo de ameaças, a plataforma MetaSleuth para rastreamento e investigação de fundos, e a extensão MetaSuites para construtores web3 navegarem com eficiência no mundo cripto.

Até o momento, a empresa atendeu mais de 300 clientes ilustres, 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 proeminentes, incluindo Matrix Partners, Vitalbridge Capital e Fenbushi Capital.

Site oficial: https://blocksec.com/

Conta oficial no Twitter: https://twitter.com/BlockSecTeam

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit
Como uma Vulnerabilidade Foi Corrigida Silenciosamente pela Coin98