This report highlights a critical issue in the proposal governance contract where a proposer’s voting power is not guaranteed to remain above the proposalThreshold after a proposal has been created. The contract currently allows cancellation of proposals only if the proposer's voting power drops below the threshold at the time of cancellation. However, there is no mechanism to enforce that a proposer maintains the required voting power throughout the proposal's lifecycle.
Finding: Proposer’s Voting Power Can Drop Below Threshold After Proposal Creation :
The proposal is created based on the proposer’s voting power at that moment.
The contract does not store the proposer's voting power at the time of creation.
The proposer's voting power could decrease below proposalThreshold before the proposal is executed, making them ineligible under normal circumstances.
However, the contract only checks the proposer’s voting power at the time of cancellation, not during the proposal’s lifecycle.
A proposer meets the voting power threshold and creates a proposal.
The proposer transfers or delegates their tokens, reducing their voting power below proposalThreshold.
The proposal remains active and can be voted on, even though the proposer would no longer qualify to create one.
Modify the proposal creation function to store the proposer’s voting power at that time.
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.