SuperMarioBros Rug Pull
What happened
MarioBros Finance (MARIO) was an Ethereum token deployed on 23 October 2020 by 0xED660878…0d40A0. Its public function named burn does not destroy tokens: it mints any amount to any address, and only the deployer, stored as governance, can call it. The deployer added 60 ETH and 2,000 MARIO as Uniswap liquidity, then about 30 minutes later called burn to mint 99,999,999.9 MARIO to its own wallet and sold them 31 seconds after that for 83.64 ETH, draining the pool.
De.Fi's REKT database lists the loss as $9,669.
How it happened
- The base token constructor stores the deploying account as the only minter:
governance = tx.origin;. No function changes it. - The function named
burnactually mints:function burn(address account, uint256 amount) public { require(msg.sender == governance, "Invalid Address"); _mint(account, amount); }. - At 19:17:18 UTC on 23 October 2020 the deployer added 60 ETH and 2,000 MARIO to the Uniswap V2 pair with
addLiquidityETH(transaction 0xba3a2fca…653bc0). - At 19:47:20 UTC the deployer called
burnwith its own address and minted 99,999,999.9 MARIO (transaction 0x3bb99fc6…39b679). - At 19:47:51 UTC it sold all 99,999,999.9 MARIO through the Uniswap router with
swapExactTokensForETHand received 83.64 ETH from the pool (transaction 0x16125deb…1931f7), leaving buyers' MARIO nearly worthless.
Protocol details
Evidence
- report Report t.me
- transaction MARIO addLiquidityETH transaction etherscan.io
- transaction MARIO burn (mint) transaction etherscan.io
- transaction MARIO swapExactTokensForETH transaction etherscan.io
- address MarioBrosToken verified source code etherscan.io
- analysis Sourcify match for 0xc00DFE9Ab5e8C726CC8938B7e393C3624d348159 on Ethereum repo.sourcify.dev
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.