You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Feb 12, 2024. It is now read-only.
Problem description
If the same address is a signer in multiple WalletSimple contract instances, an operation approval signature intended for one contract can be replayed on another WalletSimple contracts.
Cause
The WalletSimple contract address is not included in the operationHash calculation.
Sugested fix
Add address(this) to the operationHash calculation, e.g.:
var operationHash = sha3("ETHER", address(this), toAddress, value, data, expireTime, sequenceId);
The text was updated successfully, but these errors were encountered:
I think the "ETHER" and "ERC20" strings are added to differentiate between Ether and token signatures. So that Ether transfer signature would not be used for ERC-20 transfer function and vice versa.
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Problem description
If the same address is a
signer
in multipleWalletSimple
contract instances, an operation approval signature intended for one contract can be replayed on anotherWalletSimple
contracts.Cause
The
WalletSimple
contract address is not included in theoperationHash
calculation.Sugested fix
Add
address(this)
to theoperationHash
calculation, e.g.:The text was updated successfully, but these errors were encountered: