The protocol is expected to handle a fixed and trusted set of ERC20 tokens ensuring a consistent economic model and preventing misuse of token flows. However, the setAllowedToken
function allows the contract owner
to arbitrarily whitelist any ERC-20 token as valid "core" sell token. This creates centralization risk where the owner can whitelist a token, wait for users to create sell orders with that token, and later drain their deposits via emergencyWithdrawERC20
, bypassing all protocol logic.
Likelihood: High
This will occur whenever the owner intentionally or mistakenly enables an unsupported token for trade. Risk increases in DAO-controlled or externally governed environments, where administrative access can be exploited or missued.
Impact: High
User funds locked for sell orders can be extracted by owner using emergencyWithdrawERC20
, breaking user trust and leading to potential loss of user assets.
Use all the immutable supported tokens in the validation of setAllowedSellToken
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.