Core Contracts

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

Delegator Cannot Revoke Boost Delegation Before Expiry

Description

The removeBoostDelegation function only allows the delegatee to revoke a delegation, preventing the delegator from reclaiming their boost before expiry. If the delegatee becomes inactive or malicious, the delegator has no control over their allocated boost. This reduces flexibility and may lead to unintended lock-in.

Note that even delegateBoost() function itself can't override previous delegations in case delegator tries to delegate 0 amounts to previous delegatee because of this check:

// https://github.com/Cyfrin/2025-02-raac/blob/main/contracts/core/governance/boost/BoostController.sol#L226-L227
function delegateBoost(&args) {
...
UserBoost storage delegation = userBoosts[msg.sender][to];
if (delegation.amount > 0) revert BoostAlreadyDelegated();
...
}

Recommendation

+ function revokeDelegation(address _to) public {
+ delete userBoosts[msg.sender][to];
+ }
Updates

Lead Judging Commences

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

BoostController: Users unable to remove their own expired boost delegations, creating dependency on recipients and preventing efficient reallocation of boosts

Support

FAQs

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