When multiple candidates have the same number of votes in a round, there is no tiebreaker mechanism to determine which candidate loses that round, leading to unfair results.
The vulnerability lies in L125-L139 of the contract.
If multiple candidates have the same number of votes in a round, and one of them is an address in the first element of the array candidateList
, it would be the candidate that loses the voting round.
This vulnerability leads to unfairness of the voting results because of how the contract processes information when multiple candidates have the same number of votes.
Foundry, manual review
To mitigate this vulnerability, the contract should implement a tiebreaker mechanism when there are multiple candidates with the same number of votes in a round.
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.