The finding claims proposals in propose can be front-run via mempool monitoring, allowing malicious actors to submit competing proposals or block legitimate ones. The code’s propose lacks a commit-reveal scheme, making this valid, though the impact is moderated by voting delays and proposer checks. This medium-impact, high-likelihood issue holds true due to Ethereum’s public mempool.
Claim: Mempool front-running blocks legitimate proposals.
Code:
propose creates a proposal with proposalId = _proposalCount++, no duplicate ID check.
No commit-reveal; proposal details (targets, calldatas) are public in tx.
Scenario:
User submits proposal in mempool.
Attacker front-runs with higher gas, same or competing proposal.
Legitimate proposal processes but may be outvoted or ignored if IDs clash.
Analysis:
No explicit ID conflict (each proposal gets a unique proposalId), but front-running can steal priority or confuse voters.
1-day votingDelay mitigates instant execution but not proposal submission.
Blocking or outvoting legitimate proposals is a medium-impact issue, disrupting governance without direct fund loss (e.g., $10M unaffected). The high likelihood reflects mempool visibility, a common Ethereum risk, making this a valid concern.
Tools Used
Manual Code Review: Confirmed no commit-reveal in propose.
Add commit-reveal scheme:
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.