The emergencyWithdrawERC20
function restricts the withdrawal of certain "core" tokens via an emergency mechanism.
The function currently includes iUSDC
in the list of protected tokens alongside iWETH
, iWBTC
, and iWSOL
.
However, iUSDC
is not a core token in the same sense — it is a utility or quote token used for trading core tokens rather than being a core asset itself.
This misclassification unnecessarily blocks emergency withdrawal of iUSDC
, which could be needed for operational recovery or de-risking scenarios.
File | Function | Lines | Note |
---|---|---|---|
./src/OrderBook.sol |
emergencyWithdrawERC20 |
L282–L297 | iUSDC is treated as a core token incorrectly |
Likelihood:
This logic is triggered every time the owner tries to perform an emergency withdrawal of iUSDC
.
Will likely occur during emergency response or protocol maintenance.
Impact:
Prevents timely access to iUSDC
during emergencies.
Could lock protocol funds or prevent manual intervention during outages or exploit scenarios.
Misleads developers and operators about the role of iUSDC
within the system.
Remove iUSDC
from the blocked tokens list
Restrict only actual core tokens that are essential to protocol state integrity:
Update the comment and function documentation
Clarify the role of iUSDC
as a utility/trade token, not a core protocol reserve asset.
Review usage assumptions across codebase
Ensure consistent treatment of iUSDC
in other functions where core tokens are handled differently from utility tokens.
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.