The cancel()
function in Governance.sol has an incorrect logic check that allows any user to cancel a proposal if the original proposer has sufficient voting power, which is the opposite of intended behavior.
The cancel function uses incorrect logic in its permission check:
The condition allows cancellation if the sender is not the proposer AND the proposer has sufficient voting power. This is the opposite of intended behavior - anyone can cancel valid proposals.
Any user can cancel legitimate governance proposals from proposers who maintain sufficient voting power, completely breaking the governance security model.
Manual Review
Fix the permission check logic:
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.