Proposers with sufficient voting power will not be able to cancel their proposals as needed due to wrong check in Governance::cancel()
In the Governance.sol contract the cancel() function is implemented to allow proposers to cancel their proposal if they have enough voting power
The vulnerability lies in the check that is used to determine if the proposer's voting power dropped below threshold, as it checks in the opposite direction and reverts if the voting power is greater than the threshold which is wrong and wouls disallow proposer's with sufficient voting power from cancelling a proposer. On the flipside it also allows proposers with insufficient voting power to cancel their proposer
Proposers with valid amounts of voting power will not be able to cancel their proposers as it the cancel() function will always revert if they have enough voting power.
Manual Review
The correct check should be if the voting power is less thatn the proposalThreshold
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.