Core Contracts

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

Emission Rate Update Prevents User Operations

Summary

In RAACMinter.tick(), if the emissionUpdateInterval is set to non-zero, the updateEmissionRate() function call can revert if the emissionUpdateInterval has not been met, blocking user operations such as deposit, withdrawal, or liquidation in the StabilityPool.

Vulnerability Details

The RAACMinter.tick() function performs an emission rate update if the emissionUpdateInterval is greater than 0 and the current block timestamp exceeds the lastEmissionUpdateTimestamp + emissionUpdateInterval. However, the updateEmissionRate() function checks whether the interval has passed before updating, and if the check fails, it reverts with the EmissionUpdateTooFrequent error.

This logic creates a scenario where user operations in StabilityPool—such as deposit, withdrawal, or liquidation—can fail if any of these actions occur within the emission update interval. The functions will fail with the EmissionUpdateTooFrequent error, preventing users from interacting with the contract during this period.

contracts/core/minters/RAACMinter/RAACMinter.sol

206: function updateEmissionRate() public whenNotPaused {
207: if (emissionUpdateInterval > 0 && block.timestamp < lastEmissionUpdateTimestamp + emissionUpdateInterval) {
208: revert EmissionUpdateTooFrequent();
209: }
...
259: function tick() external nonReentrant whenNotPaused {
260: if (emissionUpdateInterval == 0 || block.timestamp >= lastEmissionUpdateTimestamp + emissionUpdateInterval) {
261: updateEmissionRate();
262: }
...

Impact

If the emissionUpdateInterval is set to non-zero, the issue causes a significant disruption to user experience as all operations are blocked until the emission update interval has passed.

Tools Used

vscode

Recommendations

Modify the updateEmissionRate() function to skip the update (instead of reverting) if the update interval has not been reached.

Updates

Lead Judging Commences

inallhonesty Lead Judge 7 months ago
Submission Judgement Published
Invalidated
Reason: Incorrect statement
inallhonesty Lead Judge 7 months ago
Submission Judgement Published
Invalidated
Reason: Incorrect statement

Support

FAQs

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

Give us feedback!