Meerkat Finance Rug Pull
What happened
Meerkat Finance was allegedly rug-pulled by its team or an external attacker for the amount of $31 million through proxy upgradable smart contracts.
Meerkat Finance was a fork of the successful Alpaca Finance project. Essentially, Meerkat Finance was a lending and yield aggregation protocol offering its users yield through lending assets or pledging assets to the platform's vaults. The vaults would pursuit automated investment strategies.
This rekt case gained traction when the contract deployer invoked the upgradeTo() function, setting new implementation to the BUSD Vault at:
The contract deployer also invoked the upgradeTo() function, setting new implementation to WBNB Vault at:
This altered the vault logic, introducing two new functions that were not included in the earlier implementations. This is where the real danger of proxy upgradable smart contracts lies. Code is king in DeFi and rather than trusting mediators users of DeFi can trust the code. However, when the code becomes changeable and upgradable by a centralized entity without governance by the token holder, the story changes.
An external address, marked as Fake_Phishing 17, invoked init() function to the Vaults through the proxy contract at:
According to decompiled bytecode, this function sets the address on storage slot 0 to the address provided to the function. There’s no permission check, making this newly added function the backdoor into the vaults.
The attacker called method 0x70fcb0a7 on BUSD Vault to transfer out 13,968,039 BUSD at:
The attacker called method 0x70fcb0a7 on WBNB Vault to transfer out 73,635 WBNB at:
BUSD Vault:
BNB Vault:
External Hacker Address (Fake_Phishing 17):
Protocol details
Evidence
- report Post-mortem rekt.news
- analysis Website reference theblockcrypto.com
- analysis DeFiLlama defillama.com
Build your security review skills
Work through hands-on labs covering real exploit mechanics, review techniques, and defensive patterns.