MIKE and SID Tokens Rug Pull

Reported loss $170K
Rugpull

What happened

MIKE (Mike Wazowski Monsters Inc) and SID (Sid Ice Age) were two Ethereum meme tokens that Beosin reported were rugged on 3 July 2023 through a backdoor that allowed tokens to be minted. In the MIKE contract at 0x8b99bb8d…5a51ae, increaseAllowance does not touch allowances: when the spender is a hidden guest address set at deployment, it adds the requested amount straight to that address's balance without changing totalSupply or debiting anyone. The same guest can call Approve to mark any holder, after which every transfer from that holder reverts.

The constructor also sets the owner to the zero address, so the contract looks renounced while these controls stay active. 0xF7E0d995…28F79D sold MIKE far beyond its 462 billion supply into the MIKE/WETH pool for 50.45 WETH and drained the SID/WETH pool for about 37.38 ETH, a profit Beosin put at 87.9 ETH ($171K).

How it happened

  1. The constructor stores a fourth argument as _guest.guest = user_ and mints the whole supply to the deployer. The Ownable constructor runs _setOwner(address(0)), so owner() is zero from the first block. No function other than renounceOwnership uses onlyOwner; the real controls are keyed to the guest.
  2. increaseAllowance(spender, amount) is public. If _decode(spender, _guest.guest) is true, it runs total = _somma(total, amount) and _balances[spender] += total after subtracting total (still 0) from the caller. The guest's balance grows by amount while _totalSupply stays the same.
  3. Approve(spender, amount) only acts when the caller is the guest: _dex[spender] = spender marks the address, and a call with amount 0 unmarks it.
  4. _transfer first calls _requireBalance(sender, ...). For a marked holder, _decode(sender, _dex[sender]) is true and _minus(sender, _totalSupply) subtracts the whole supply from the holder's balance, which underflows and reverts, so that holder cannot sell or move tokens.
  5. What happened: in transaction 0xc70c66d1…977e63 (3 July 2023, 01:59:59 UTC), 0xF7E0d995…28F79D sent a MIKE amount that Etherscan shows as more than 999 trillion, over 2,000 times the supply, into the MIKE/WETH pair and received 50.4479 ETH. Because only the guest credit path creates balance beyond the supply, those tokens came from increaseAllowance.
  6. The SID/WETH pool was drained for about 37.38 ETH in transaction 0x4047eb8b…aabb30, and the ETH was moved on in transactions 0xbdd481c5…7593ae and 0x3889e410…329c1e, according to the existing record.

Protocol details

Classification Token
Protocol Type Exit Scam/Rugpull
Affected asset / contract MIKE

Build your security review skills

Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.