Impact This vulnerability affects all accounts (vanilla and ethereum flavors) in the v0.2.0 release of OpenZeppelin Contracts for Cairo, which are not whitelisted on StarkNet mainnet, so only goerli deployments of v0.2.0 accounts are affected.
This faulty behavior is not observed in StarkNet's testing framework, so don't rely on it passing to detect this issue on custom accounts.
Patches This bug has been patched in v0.2.1.
References The issue is detailed in https://github.com/OpenZeppelin/cairo-contracts/issues/386.
For more information If you have any questions or comments about this advisory: Open an issue in the Contracts for Cairo repo Email us at security@openzeppelin.com
Cause isvalidethsignature is missing a call to finalizekeccak after calling verifyethsignature.
Impact As a result, any contract using isvalidethsignature from the account library (such as the EthAccount preset) is vulnerable to a malicious sequencer. Specifically, the malicious sequencer would be able to bypass signature validation to impersonate an instance of these accounts.
Risk In order to exploit this vulnerability, it is required to control a sequencer or prover since they're the ones executing the hints, being able to inject incorrect keccak results.
Today StarkWare is the only party running both a prover or a sequencer, greatly reducing the risk of exploit.
Patches The issue has been patched in 0.6.1.
For more information If you have any questions or comments about this advisory: Open an issue in the Contracts for Cairo repository Email us at security@openzeppelin.com