Hacker lucra 332 ETH com bug no OpenSea que permite comprar NFTs por preços antigos

O invasor conseguiu comprar um Bored Ape por 22 ETH e vendê-lo logo em seguida por 130 ETH
Imagem da matéria: Hacker lucra 332 ETH com bug no OpenSea que permite comprar NFTs por preços antigos

Foto: Shutterstock

Os investigadores do PeckShield confirmaram o que alguns membros da comunidade cripto já vinham alertando: hackers estão explorando um bug no OpenSea, o maior mercado de NFTs do mundo.

Cerca de 332 ETH (R$ 4,1 milhões) foram roubados da plataforma na manhã desta segunda-feira (24) através de uma brecha aberta por um “problema de front-end”, tuitou o PeckShield, sem entrar em mais detalhes.

Publicidade

Mas aparentemente o problema não é novo. Trata-se de um bug que permite que invasores comprem NFTs por preços muito inferiores, informados em listagens antigas e que não deveriam mais aparecer na plataforma.

Após comprar os NFTs por preços baixos, eles revendem por um novo preço que condiz com sua valorização atual, rendendo ao invasor uma grande margem de lucro. O problema, portanto, afeta diretamente usuários da plataforma que estão perdendo seus NFTs.

O BAYC #8274, por exemplo, foi “comprado” nesta manhã por 22,9 ETH e vendido logo em seguida por 130 ETH, dando em poucos minutos um lucro de 100 ETH para o invasor, cerca de R$ 1,2 milhão na atual cotação do Ethereum.

Conforme mostrou o analista Tal Be’ery, o detentor original listou o token no OpenSea por 22,9 ETH no dia 9 de julho de 2021, e foi por esse preço que o invasor conseguiu levar o item.

Publicidade
https://twitter.com/boredapebot/status/1485518949911515141

A pessoa por trás do ataque é conhecido por jpegdegenlove e além do Bored Ape Yacht Club, ele também roubou NFTs de outras coleções famosas, como o Mutant Ape Yacht Club e Cool Cats.

O usuário @ToastVirtual foi outra vítima do bug e confessou no Twitter sua frustração com o ocorrido: “Que merda OpenSea. Estou muito chateado com o seu maldito site agora, acabei de acordar em uma manhã de segunda-feira para descobrir que meu macaco Bored Ape acabou de ser vendido por 6,66 ETH durante a noite devido a um preço de listagem antigo”.

Como o bug está sendo explorado

O desenvolvedor Rotem Yakir explicou que para desvendar a brecha, é preciso entender que parte das negociações no OpenSea acontecem fora da cadeia (off-chain) para economizar taxas da rede Ethereum. 

https://twitter.com/yakirrotem/status/1485559872242565121

“Quando você lista um item para venda (ou lance), você está assinando dados que validam que você está disposto a vender sua NFT a esse preço. A assinatura é salva no banco de dados off-chain do Open Sea e quando alguém quiser comprar seu NFT, eles enviarão para o contrato inteligente seus dados assinados anteriormente, onde as informações de assinatura e venda (como vencimento e preço) são validadas na cadeia antes fazendo a transferência”, explica.

Publicidade

O problema é que dessa forma, as listagens antigas continuam salvas no banco de dados, mesmo que o usuário crie uma nova listagem para o mesmo NFT. Para evitar esse problema, o detentor que desiste de vender um item passou a ser obrigado a realizar uma transação para salvar sua decisão na blockchain.

Como visto nesta manhã, um invasor pode salvar a listagem assinada — que é pública no https://orders.rarible.com ou na API do OpenSea — e explorá-la mais tarde, mesmo que a listagem tenha sido removida da interface do usuário.

“A transação on-chain salvará o fato de que você cancelou essa venda em seu contrato inteligente e, mesmo que alguém tente usar seus dados assinados anteriormente, a validação on-chain rejeitará a venda”, diz Yakir.

Embora agora seja obrigatório fazer transação para remover a listagem no OpenSea, isso nem sempre foi assim, e é justamente os NFTs listados antes da mudança que estão sendo explorados neste momento.

No passado, os usuários poderiam colocar a venda um NFT por um novo preço, sem precisar cancelar a listagem anterior. Para resolver esse problema, os próprios usuários devem agir, conforme aconselhou o desenvolvedor: “Se você quiser estar 100% seguro, basta transferir seu NFT para uma carteira diferente”.

Publicidade

Até o momento, a equipe do OpenSea não se pronunciou sobre a exploração desta manhã.