##Description
Normal Behavior:
The setAllowedSellToken() function is meant to let the owner allow or disallow ERC20 tokens that sellers can list in the order book. This ensures only well-known, safe tokens like wETH, wBTC, and wSOL are traded.
Specific Issue:
There is no validation to check whether the token being whitelisted is a valid ERC20 with standard behavior (e.g. decimals, transfer mechanics, no fee-on-transfer). A malicious or broken token can be added by mistake — especially in future governance upgrades — which may:
Behave unexpectedly during transfers.
Lock buyer funds.
Cause buy orders to fail or drain buyers.
Likelihood:
Very likely during production operations or governance upgrades.
No interface checks mean any contract address can be whitelisted, even if it’s not an ERC20.
Impact:
Users may lose funds buying a malicious or broken token.
Buyers can be front-run or stuck in transactions that revert.
Sellers can list tokens that trap buyers' USDC, damaging platform trust.
A malicious token with a fake transfer() function is whitelisted using setAllowedSellToken().
Buyers lose USDC without receiving any tokens, as transfers silently fail or do nothing.
Maintain a fixed allowlist in the constructor or restrict updates via multisig/governance only.
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.