Core Contracts

Regnum Aurum Acquisition Corp
HardhatReal World AssetsNFT
77,280 USDC
View results
Submission Details
Severity: low
Valid

Voting still possible on canceled proposals

Summary

In the governance system, veToken holders can vote on active proposals via Governance.sol::castVote(). However, the contract does not properly check if a proposal has already been canceled before allowing users to cast their vote.
As a result, users can still submit votes on proposals that are no longer valid, leading to unnecessary and ineffective voting.

Impact

Users can vote on proposals that have already been canceled, resulting in useless voting and unnecessary gas costs.

PoC

  1. A governance proposal is created and open for voting.

  2. Some users start voting.

  3. The proposal is later canceled

  4. Despite being canceled, users can still cast votes using castVote().

Tools Used

Manual review

Recommendations

Add check in castVote that ensures the proposal is not canceled.
For example add this code:

if(proposal.canceled) {
revert;
}
Updates

Lead Judging Commences

inallhonesty Lead Judge 4 months ago
Submission Judgement Published
Validated
Assigned finding tags:

Governance::castVote lacks canceled/executed proposal check, allowing users to waste gas voting on proposals that can never be executed

inallhonesty Lead Judge 4 months ago
Submission Judgement Published
Validated
Assigned finding tags:

Governance::castVote lacks canceled/executed proposal check, allowing users to waste gas voting on proposals that can never be executed

Support

FAQs

Can't find an answer? Chat with us on Discord, Twitter or Linkedin.