N° | Contract | Done | Exploit PoC | Description | |
---|---|---|---|---|---|
01 | RoadClosed | ✅ | RoadClosedExploit | - Use of extcodesize to check if an address is an EOA- Lack of access control for some critical methods (e.g addToWhitelist ) |
|
02 | Confidential | ✅ | ConfidentialExploit | - Read private variables from storage | |
03 | VIPBank | ✅ | VIPBankExploit | - Wrong check of parameter to prevent users from withdrawing too many ethers at a time which leads to funds locked forever in the contract. | |
04 | SafeNFT | ✅ | SafeNFTExploit | - OpenZeppelin's ERC721 implementation of safeMint is not safe and performs an external call to the receiver address. |
|
05 | Delegate | ✅ | DelegateExploit | - delegatecall can override variables of the calling contract. |
|
06 | CollatzPuzzle | ❌ | CollatzPuzzleExploit | - Use huff to heavily optimize the contract by relying on opcodes directly. | |
07 | TrueXOR | ✅ | TrueXORExploit | - Use the amount of gas left (with gasleft() ) to return different values using a view function that takes no parameters- Use delegatecall to keep the context of the main contract (especially, msg.sender , msg.value and address(this) ). |
|
20 | VoteToken | ✅ | VoteTokenExploit (*) | - The contract doesn't update its state when users transfer tokens | |
21 | PrivateClub | ✅ | PrivateClubExploit (*) | - Not enough check of the parameters (e.g. becomeMember )- Too much power given to the contract owner |
(*) Detailed reports have been written for these exploits: VoteToken and PrivateClub.