Core Contracts

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

Missing max-threshold check in proposal creation

Summary

The current governance implementation allows users to create proposals based on their voting power. While there is a check to ensure that the voting power meets a minimum threshold, there is no corresponding check to ensure that it does not exceed a defined maximum threshold.

Vulnerability Details

The proposalThreshold is set to a minimum value (e.g., 100_000e18).

uint256 public proposalThreshold = 100_000e18; // 100k veRAAC

This is checked during proposal creation to ensure that a proposer has sufficient voting power.

if (proposerVotes < proposalThreshold) {
revert InsufficientProposerVotes(msg.sender, proposerVotes, proposalThreshold, "Below threshold");
}
// @audit-issue Missing max proposal threshold check

However, there is no validation to ensure that the proposer's voting power does not exceed the MAX_PROPOSAL_THRESHOLD (e.g., 1,000,000e18).

  • This lack of a maximum check means that users with excessive voting power can create proposals, undermining the intended governance structure.

Impact

Users with voting power above the maximum threshold can dominate the proposal process, leading to potential governance centralization.

Tools Used

Manual Review

Recommendations

Add a check during the proposal creation process to ensure that the user's voting power does not exceed the MAX_PROPOSAL_THRESHOLD.

if (proposerVotes < proposalThreshold) {
revert InsufficientProposerVotes(msg.sender, proposerVotes, proposalThreshold, "Below threshold");
}
// @audit check max proposal threshold
+ if (proposerVotes > MAX_PROPOSAL_THRESHOLD) {
+ revert InvalidProposerVotes(msg.sender, proposerVotes, MAX_PROPOSAL_THRESHOLD, "Above maximum threshold");
+ }
Updates

Lead Judging Commences

inallhonesty Lead Judge 4 months ago
Submission Judgement Published
Invalidated
Reason: Design choice
inallhonesty Lead Judge 4 months ago
Submission Judgement Published
Invalidated
Reason: Design choice

Support

FAQs

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