Core Contracts

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

RAACToken's Critical Functions Permanently Inaccessible Due to FeeCollector Set as Initial Owner

Summary

The RAACToken contract sets the FeeCollector contract as its initial owner in the constructor. However, since FeeCollector has no mechanism to call owner-only functions or transfer ownership, critical RAACToken functions become permanently inaccessible.

Vulnerability Details

constructor(address initialOwner, uint256 initialSwapTaxRate, uint256 initialBurnTaxRate)
ERC20("RAAC Token", "RAAC")
Ownable(initialOwner)
{
if (initialOwner == address(0)) revert InvalidAddress();
@> feeCollector = initialOwner;
if (initialSwapTaxRate > MAX_TAX_RATE) revert SwapTaxRateExceedsLimit();
swapTaxRate = initialSwapTaxRate == 0 ? 100 : initialSwapTaxRate; // default to 1% if 0
emit SwapTaxRateUpdated(swapTaxRate);
if (initialBurnTaxRate > MAX_TAX_RATE) revert BurnTaxRateExceedsLimit();
burnTaxRate = initialBurnTaxRate == 0 ? 50 : initialBurnTaxRate; // default to 0.5% if 0
emit BurnTaxRateUpdated(burnTaxRate);
}

Impact

  • Critical protocol parameters cannot be updated

  • Tax rates become immutable

  • No way to transfer ownership

  • Protocol loses ability to adapt to market conditions

Tools Used

Manual review

Recommendations

Set an address that can function as owner, as owner instead of FeeCollector:

Updates

Lead Judging Commences

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

RAACToken sets FeeCollector as owner but never initializes minter in constructor; FeeCollector has no mechanism to call setMinter, permanently blocking all token minting functionality

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

RAACToken sets FeeCollector as owner but never initializes minter in constructor; FeeCollector has no mechanism to call setMinter, permanently blocking all token minting functionality

Appeal created

inallhonesty Lead Judge 4 months ago
Submission Judgement Published
Invalidated
Reason: Non-acceptable severity
Assigned finding tags:

RAACToken sets FeeCollector as owner but never initializes minter in constructor; FeeCollector has no mechanism to call setMinter, permanently blocking all token minting functionality

Support

FAQs

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