The CurrencyManager contract allows administrators to remove whitelisted currencies without checking for existing positions or balances, potentially leading to stranded assets and broken functionality for users who have holdings in the removed currency.
In the CurrencyManager contract, the removeCurrency function allows administrators to remove a whitelisted currency without any checks for existing positions:
The vulnerability exists because:
No checks are performed for existing positions or balances
Currency removal is immediate with no grace period
No mechanism exists to handle stranded assets
The vulnerability can lead to:
Loss of access to user assets
Broken functionality in dependent contracts
Inability to process transactions in removed currencies
Manual code review
Check for existing positions before removing currency
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.