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.