The contract allows proposals to be executed even if they do not meet the required quorum. While quorum checks exist in state()
, they are not enforced before execution, allowing low-vote proposals to be passed.
Problems:
No explicit check that the proposal met quorum before execution.
Attackers can execute proposals with minimal votes, bypassing proper governance participation.
State inconsistencies may arise if an unqualified proposal is executed but later queried as "Defeated" in state()
.
Attacker submits a proposal with very few votes.
Attacker waits for the voting period to end.
Despite not meeting quorum, attacker calls execute()
, which does not verify quorum.
The proposal executes successfully, bypassing governance legitimacy.
Proposals can be executed without proper participation, leading to governance takeovers.
Malicious proposals can execute with minimal votes
Governance legitimacy compromised
Manual Review
Modify _executeProposal()
to ensure that the proposal met quorum before execution.
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.