horsefacts pfp
horsefacts
@horsefacts.eth
The Amps exploit was due to an unprotected reinitializer on their upgradeable contract. The attacker called reinitialize, set themselves as the owner, and changed the implementation to a malicious contract. This is a very common bug in upgradeable contracts. (1/5) https://farcaster.xyz/phil/0x1aa4e6f9
8 replies
12 recasts
91 reactions

horsefacts pfp
horsefacts
@horsefacts.eth
The Amps team reinitialized the contract to the max version to permanently claim back ownership. Too late to save funds that were already transferred, but the exploit is no longer possible and any new or unexploited allowances to the contract are safe. (2/5)
1 reply
1 recast
30 reactions

horsefacts pfp
horsefacts
@horsefacts.eth
If you want to be extra cautious, you can use this mini app to revoke your USDC allowance to Amps. (3/5) https://farcaster.xyz/miniapps/iX85orRFS90j/revoke-amps
1 reply
3 recasts
20 reactions

horsefacts pfp
horsefacts
@horsefacts.eth
If you are the owner of an upgradeable smart contract, you should check for unprotected initializers and ensure that your implementation cannot be initialized. Here's a good explainer of the initialization pattern and common errors. (4/5) https://rareskills.io/post/initializable-solidity
1 reply
1 recast
23 reactions

horsefacts pfp
horsefacts
@horsefacts.eth
Thanks to @bertwurst.eth and @hamdan for sounding the alarm and to everyone who helped with the response. (5/5)
1 reply
1 recast
25 reactions