recordVote is a function implemented in veRAACToken which is used to record a vote for a proposal. However the function doesn't implement access control mechanism which makes it callable by any user with the arbitrary voter address on behalf of anyone due to lack of validation.
So you can check this function - recordVote which takes votes based on the arbitrary address passed to it as argument and for any proposal
Attack scenario :
Attacker creates a proposal with the proposalId - 1
Now attacker can call this recordVote() with different voter address and proposalId = 1
Proposal is passed
Ability to vote on behalf of anyone for any proposal
Manual Review
Change the code to following to fix this issue:
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.