Platform: Code4rena
Start Date: 12/08/2022
Pot Size: $35,000 USDC
Total HM: 10
Participants: 126
Period: 3 days
Judge: Justin Goro
Total Solo HM: 3
Id: 154
League: ETH
Rank: 19/126
Findings: 1
Award: $389.99
🌟 Selected for report: 0
🚀 Solo Findings: 0
https://github.com/code-423n4/2022-08-fiatdao/blob/main/contracts/features/Blocklist.sol#L25
If a manager decides to add a contract to the block list he will call the block
function within the BlockList contract. An operator can front run any calls to the block
function that passes the operator's malicious smart wallet address with a SELFDESTRUCT
call to his contract. This will cause the _isContract
function to fail. The operator then can redeploy his contract to the same address using CREATE2
.
The operator deploys a malicious smart wallet via a factory using CREATE2.
Manager spots the malicious smart wallet
Manager calls the block
function with the malicious smart wallet’s address
The operator of this malicious smart wallet sees this call in the mempool
The operator front runs the manager's call to the block
function with a SELFDESTRUCT
call to his malicious smart wallet.
The manager's call to the block
function fails because the address for the malicious smart wallet no longer has code.
The operator back runs the manager's call with a CREATE2 call to the factory which redeploys the same contract to the same address.
Block the address whether it’s a contract or not perhaps creating an approvedList which could work as well.
#0 - bahurum
2022-08-16T20:44:42Z
Duplicate of #168
#1 - lacoop6tu
2022-08-17T09:15:19Z
Duplicate of #168
#2 - gititGoro
2022-08-31T02:15:28Z
Duplicate of #75