Domain separator is set wrongly, and does not follow EIP712 specs. It is missing chainId
.
This is EIP712Base._setDomainSeparator()
In EIP-712, domain separator is set as name,version,chainId,verifying contract
but in this protocol it is flipped. getChainId()
is used as the salt instead of the chain id, which allows for replay attacks.
EIP specs is not followed, Signature will be hashed incorrectly with potential for replay and phishing attacks.
Manual Review
Swap chainId and address(this)
Also, change EIP712_DOMAIN_TYPEHASH
to include chainID.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.