Core Contracts

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

Improper Emission Cap Comparison in setEmission Function

Summary

The setEmission function restricts the new emission amount by requiring it to be less than or equal to periodState.emission. However, this logic can cause issues when a low emission value is initially set, preventing any subsequent increase—even if the new value is within the intended _maxEmission limit.

Vulnerability Details

In the constructor, periodState.emission is initialized with _maxEmission. However, the setEmission function enforces the following check:

if (emission > periodState.emission) revert RewardCapExceeded();
  • This logic only allows emission values that are equal to or lower than the currently set periodState.emission.

  • If an initial emission is set to a very low value, any attempt to increase it (even if the new value is below _maxEmission) will always revert, effectively locking the system into a low-emission state.

  • This prevents flexibility in adjusting emission rates dynamically based on changing requirements.

Impact

  • Once a low emission value is set, it cannot be increased, even if _maxEmission allows for a higher limit.

  • Admins may be unable to correct an unintentionally low emission value, affecting reward distribution.

  • If emissions need adjustment based on external factors (e.g., staking participation, liquidity needs), the inability to raise them could hinder system efficiency.

Tools Used

  • Manual code review

Recommendations

Modify the Emission Comparison Logic: Instead of restricting increases, compare against _maxEmission rather than

Updates

Lead Judging Commences

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

Appeal created

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

BaseGuage::setEmission can be configured only to lower values limiting the

Support

FAQs

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

Give us feedback!