Lack of owner verification in EIP-1271 signature check #486
Labels
3 (High Risk)
Assets can be stolen/lost/compromised directly
bug
Something isn't working
duplicate-175
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/53c8c3823175aeb26dee5529eeefa81240a406ba/scw-contracts/contracts/smart-contract-wallet/SmartAccount.sol#L218
https://github.com/code-423n4/2023-01-biconomy/blob/53c8c3823175aeb26dee5529eeefa81240a406ba/scw-contracts/contracts/smart-contract-wallet/SmartAccount.sol#L342
Vulnerability details
Description
In the
checkSignatures
there are checks that the signer is the account owner, but in the case of EIP-1271 signature check there are no such checks:So everyone can sign any transaction using the EIP-1271 signature validation method and convince the wallet that the valid signature was verified.
Impact
The complete absence of signature verification, and as a result, the possibility of performing any transaction by a third party.
Recommended Mitigation Steps
Add the following check into the EIP-1271 signature check logic:
The text was updated successfully, but these errors were encountered: