In the Governance.sol contract the execute function is missing a check to verify whether the proposer's voting power has dropped below the threshold, which can lead to the execution of proposals by proposers who no longer meet the required voting power.
The vulnerability arises from the absence of a check in the execute function to ensure that the proposer's voting power is still above the proposal threshold at the time of execution. If the proposer's voting power drops below the threshold after the proposal is created but before it is executed, the proposal can still be executed. This undermines the integrity of the governance process, as proposals should only be executed if the proposer maintains the required voting power throughout the process.
By allowing proposals to be executed by proposers who no longer meet the required voting power, the protocol may execute proposals that do not have sufficient support. This can lead to the implementation of decisions that do not reflect the consensus of the community, potentially causing governance and operational issues. It undermines the fairness and reliability of the governance process, as proposers who lose their voting power should not be able to push through proposals.
Manual Review
To mitigate this vulnerability, add a check in the execute function to verify that the proposer's voting power is still above the proposal threshold before executing the proposal. Here is an example of how to implement this:
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.