Core Contracts

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

Extended Recovery Period After Emergency Shutdown Due to Rate Adjustment Limitations

Summary

The RAACMinter contract's emergency shutdown mechanism, while successfully halting emissions, leads to an extended period of economic distortion during recovery. Due to the interaction between the benchmark rate and the maximum daily adjustment factor, it can take up to 48 days for emission rates to normalize after an emergency shutdown, resulting in significant deviations from intended token distribution.

Vulnerability Details

The emergencyShutdown function resets the emission rate to 0:

function emergencyShutdown(bool updateLastBlock, uint256 newLastUpdateBlock) external onlyRole(DEFAULT_ADMIN_ROLE) {
@> emissionRate = 0;
...

When operations resume, the emission rate gets set to the benchmark rate through calculateNewEmissionRate():

function calculateNewEmissionRate() internal view returns (uint256) {
uint256 utilizationRate = getUtilizationRate();
uint256 adjustment = (emissionRate * adjustmentFactor) / 100; // 5% adjustment limit
if (utilizationRate > utilizationTarget) {
uint256 increasedRate = emissionRate + adjustment;
@> uint256 maxRate = increasedRate > benchmarkRate ? increasedRate : benchmarkRate;
return maxRate < maxEmissionRate ? maxRate : maxEmissionRate;
} else if (utilizationRate < utilizationTarget) {
uint256 decreasedRate = emissionRate > adjustment ? emissionRate - adjustment : 0;
@> uint256 minRate = decreasedRate < benchmarkRate ? decreasedRate : benchmarkRate;
return minRate > minEmissionRate ? minRate : minEmissionRate;
}
return emissionRate;
}

The issue manifests in two scenarios:

Low-to-High Recovery:

  • Initial rate: 100 RAAC/day (minimum)

  • After shutdown and restart: 1000 RAAC/day (benchmark)

  • With 5% maximum daily adjustment: Takes 48 days to return to minimum rate

  • Result: 48 days of excess emissions

High-to-Low Recovery:

  • Initial rate: 2000 RAAC/day (example)

  • After shutdown and restart: 1000 RAAC/day (benchmark)

  • With 5% maximum daily adjustment: Takes 15 days to return to original rate

  • Result: 15 days of reduced emissions

Impact

High - Extended periods of incorrect emissions (15-48 days depending on scenario)

In the low-to-high scenario:

Over 48 days:

Approximately 21,600 excess RAAC tokens emitted

In the high-to-low scenario:

Over 15 days:

Approximately 7,500 RAAC tokens under-emitted

Likelihood

Low - Emergency shutdowns are rare and severity depends on .

Recommendations

  • Add a recovery mode that bypasses the adjustment factor limit

  • Alternatively, store the pre-shutdown emission rate and allow it to be restored

  • At minimum, document this behavior in the protocol specification and consider if the extended recovery period aligns with emergency response requirements.

Updates

Lead Judging Commences

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

Emergency shutdown recovery causes 15-48 days of distorted emissions due to benchmark rate jump and 5% daily adjustment limit, over/under-minting thousands of tokens

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

Emergency shutdown recovery causes 15-48 days of distorted emissions due to benchmark rate jump and 5% daily adjustment limit, over/under-minting thousands of tokens

Support

FAQs

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