Missing `finalize_keccak` call in `is_valid_eth_signature` allows impersonation vulnerability in OpenZeppelin Contracts for Cairo

Missing `finalize_keccak` call in `is_valid_eth_signature` allows impersonation vulnerability in OpenZeppelin Contracts for Cairo

CVE-2023-23940 · MEDIUM Severity

CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N

OpenZeppelin Contracts for Cairo is a library for secure smart contract development written in Cairo for StarkNet, a decentralized ZK Rollup. `is_valid_eth_signature` is missing a call to `finalize_keccak` after calling `verify_eth_signature`. As a result, any contract using `is_valid_eth_signature` 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. The issue has been patched in 0.6.1.

Learn more about our Web Application Penetration Testing UK.