Core Contracts

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

Unrecoverable Tokens Due to Incorrect Transfer in emergencyRevoke

Summary

The emergencyRevoke function transfers unreleased tokens to the contract itself (address(this)). However, there is no function to recover these tokens, causing them to become permanently locked in the contract.

Vulnerability Details

When emergencyRevoke is called, the remaining unvested tokens of a revoked beneficiary are transferred to the contract:

raacToken.transfer(address(this), unreleasedAmount);
  • Problem: The contract lacks a mechanism to withdraw or reallocate these tokens.

  • As a result, tokens are permanently stuck in the contract, making them unrecoverable unless an external upgrade or admin intervention is performed.

Impact

Locked Funds: Any tokens revoked through emergencyRevoke become permanently inaccessible.

Tools Used

Manual Code Review

Recommendations

Add a function to allow the admin to recover stuck tokens.

Updates

Lead Judging Commences

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

RAACReleaseOrchestrator::emergencyRevoke sends revoked tokens to contract address with no withdrawal mechanism, permanently locking funds

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

RAACReleaseOrchestrator::emergencyRevoke sends revoked tokens to contract address with no withdrawal mechanism, permanently locking funds

Support

FAQs

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