Issue:
The StrategyMainnet
contract does not include a mechanism to recover tokens inadvertently sent to the contract that are not part of the strategy's operations (e.g., tokens other than underlying
or asset
). Over time, this can result in stray tokens being permanently locked within the contract.
Medium to High.
Locked Tokens:
Any unexpected tokens sent to the contract (e.g., as a mistake or through malicious means) cannot be recovered without deploying a new contract or modifying the existing one.
Operational Inefficiencies:
Locked tokens contribute to inefficiencies by reducing the recoverable funds available to the protocol.
Trust and User Experience:
Users or third-party protocols might accidentally transfer tokens, leading to dissatisfaction if recovery is not possible.
The contract does not include any rescueTokens
or equivalent function to handle unexpected tokens:
Accidental Transfers:
A user mistakenly transfers unrelated tokens to the strategy contract.
Malicious Token Transfers:
An attacker sends tokens to inflate the contract’s perceived balance to manipulate audits or confuse accounting.
Locked Tokens:
Without a recovery mechanism, these tokens remain inaccessible and unusable.
Implement a function to recover non-strategy tokens, restricted to authorized roles such as onlyManagement
. This ensures that tokens not part of the strategy’s operations can be safely returned.
Implement a Rescue Function:
Allow authorized roles to retrieve tokens that are not part of the strategy.
Prevent Strategy Token Misuse:
Include safeguards to ensure asset
and underlying
tokens cannot be "rescued" or transferred unintentionally.
Unexpected Token Transfer:
A user mistakenly sends USDC
to the strategy contract.
Execute Rescue Function:
The rescueTokens
function is invoked by the management role to transfer the USDC
back to the user.
Expected Outcome:
USDC
tokens are successfully transferred back to the user without affecting the strategy’s asset
or underlying
balances.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.