Not initializable SmartAccount implementation contract #98
Labels
3 (High Risk)
Assets can be stolen/lost/compromised directly
bug
Something isn't working
duplicate-496
satisfactory
satisfies C4 submission criteria; eligible for awards
sponsor confirmed
Sponsor agrees this is a problem and intends to fix it (OK to use w/ "disagree with severity")
Lines of code
https://github.com/code-423n4/2023-01-biconomy/blob/main/scw-contracts/contracts/smart-contract-wallet/SmartAccount.sol#L0
Vulnerability details
Impact
The
SmartAccount
implementation contract is open to exploitation because it is not initialized in the deployment process.Proof of Concept
With the unintializable contract is possible to change the owner and selfdestruct the contract to DoS all proxy contracts, making it impossible to upgrade. To perform this attack the attacker would:
SmartAccount
implementationTools Used
Manual Analysis
Recommended Mitigation Steps
The recommendation is to initialize the implementation contract or follow OZ security advice to add _disableInitializers function to constructor of
SmartAccount
The text was updated successfully, but these errors were encountered: