In the Governance.sol contract the requiredQuorum can change during the voting period due to changes in the total voting power and the quorumNumerator. This can lead to inconsistencies and potential manipulation of the quorum requirement for proposals.
The vulnerability arises from the quorum function, which calculates the required quorum based on the current total voting power and the quorumNumerator. Since the total voting power can change during the voting period and the quorumNumerator can be adjusted by the admin, the requiredQuorum is not consistent throughout the proposal's lifecycle. This inconsistency can lead to situations where the quorum requirement changes after a proposal has been created, potentially affecting the outcome of the vote.
Consider the following scenario:
A proposal is created with a quorumNumerator of 4% and a total voting power of 1,000,000 veRAAC tokens, resulting in a requiredQuorum of 40,000 votes.
During the voting period, the total voting power increases to 1,200,000 veRAAC tokens, changing the requiredQuorum to 48,000 votes.
Additionally, the admin changes the quorumNumerator to 5%, further increasing the requiredQuorum to 60,000 votes.
This changing quorum requirement can lead to confusion and potential manipulation, as the conditions for passing a proposal are not consistent throughout the voting period.
By allowing the requiredQuorum to change during the voting period, the protocol introduces uncertainty and potential manipulation into the governance process. Proposers and voters may not have a clear understanding of the quorum requirement, leading to potential disputes and a lack of trust in the governance system.
Manual Review
To mitigate this vulnerability, ensure that the requiredQuorum is consistent for the entire duration of a proposal. This can be achieved by calculating and storing the requiredQuorum at the time of proposal creation and using this stored value for the duration of the proposal.
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.