Meebits Hack
What happened
The exploiter's address:
The exploiter's smart contract:
Affected NFT smart contract:
Minting function in NFT uses pseudo randomization depends on block values:
uint index = uint(keccak256(abi.encodePacked(nonce, msg.sender, block.difficulty, block.timestamp))) % totalSize.It means close to zero randomnesses of the returned index. The exploiter has used a bot and deployed a contract to interact with the NFT contract. The exploiter used open information which exactly what metadata he should receive to sell NFT with the highest profit.
If the bot minted an undervalued NFT, the bot reverted the transaction. This vulnerability allowed exploiter minting predictable expensive NFTs.
Protocol details
Evidence
- report Report forum.openzeppelin.com
- report Report cointelegraph.com
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.