The TYPEHASH
variable declared on line 23 uses the incorrect function signature. This means that the structHash
generated on line 54 as well as the resulting hash
on line 55 will be incorrect. Accordingly, the signer
address recovered by the call to ECDSA.recover()
will return an incorrect or invalid address.
Due to the issue mentioned above, any call to rankCandidateBySig()
will result in the recovery of an incorrect or invalid signer
address. This means that calls to verify the address of the signer within _rankCandidates()
will fail making it impossible for anyone to submit a vote unbehalf of a valid voter.
The ability for voters to sign an un-sent transaction so others can spend the gas to cast their vote will be unusable.
Manual Review
Change the code on line 23 to:
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.