Worked example · 2026-06
mySwap CL — a fake "EVIL" token abuses shared-vault concentrated-liquidity accounting to drain residual LP — Starknet — 2026-06-19
Status: developing / preliminary mapping (as of 2026-06). The loss, date, asset breakdown and laundering path are multi-sourced, but the exact line-level bug is not yet public and mySwap had not published a full post-mortem at the time of writing. The technique mapping below is preliminary and should be revised once the precise defect is disclosed.
Summary
mySwap is a Starknet DEX; mySwap CL is its concentrated-liquidity product, whose positions were backed by a shared vault holding liquidity across many pools. The CL interface had been closed to new deposits for over six months, leaving residual LP spread across 100,000+ positions.
On 2026-06-19 (~07:15 UTC), an attacker introduced a fake token named "EVIL" and used it to distort the vault's accounting so that a malicious token interaction could withdraw real assets from the shared vault. About $300K–$305K (137.96 ETH, 45,000 USDC, 19,900 USDT, 230,000 STRK) was drained, emptying nearly all remaining liquidity. The attacker bridged the proceeds off Starknet and routed them through Railgun. mySwap confirmed the incident; the precise line-level defect had not been published at the time of writing.
Timeline (UTC)
| When | Event | OAK ref |
|---|---|---|
| Pre-2026-06-19 | mySwap CL closed to new deposits for 6+ months; residual LP across 100,000+ positions remains in a shared vault | (standing surface) |
| 2026-06-19 ~07:15 | Attacker introduces a fake "EVIL" token and abuses the shared-vault CL accounting to withdraw ~$300K–$305K of residual LP | T9.004 (preliminary) |
| 2026-06-19 | Proceeds bridged off Starknet and routed through Railgun | T7.003 + T7.001 |
| 2026-06-19/20 | mySwap confirms the incident; SlowMist logs it; no full post-mortem published | (operator response) |
What defenders observed
- Pre-event (token-admission boundary). The confirmed root shape is that the vault's accounting acted on a token it should not have trusted. Allow-listing the tokens that may influence vault accounting, rather than accepting arbitrary tokens, is the pre-event control. The exact bug (missing allow-list vs callback/reentrancy vs share inflation) is unconfirmed.
- At-event (shared vault as blast radius). Because one vault backed liquidity across many pools, a single malicious-token interaction reached assets backing unrelated positions. Per-position or per-pool balance isolation limits how far one bad token can reach.
- At-event (deprecated but not dormant). The product was closed to deposits yet still held drainable residual LP. Deprecation without withdrawing residual funds or maintaining monitoring leaves a live target.
- Post-event (fast obfuscation). Proceeds were bridged off Starknet and routed through Railgun, foreclosing straightforward on-chain tracing.
Public references
[cryptoadventuremyswap2026]— Crypto Adventure, "mySwap loses $305K on Starknet after fake EVIL token abuses CL pool accounting" (most detailed mechanism; EVIL-token / shared-vault CL accounting; asset breakdown): https://cryptoadventure.com/myswap-loses-305k-on-starknet-after-fake-evil-token-abuses-cl-pool-accounting/[phemexmyswap2026]— Phemex, "Starknet's mySwap protocol exploited, $300,000 drained" ($300K; Railgun laundering; mySwap confirmation): https://phemex.com/news/article/starknets-myswap-protocol-exploited-300000-drained-90069[slowmistmyswap2026]— SlowMist Hacked database — mySwap (2026-06-19, Starknet, smart-contract vulnerability, Railgun): https://hacked.slowmist.io/[cryptotimesmyswap2026]— Crypto Times, mySwap coverage (corroborates ~07:15 UTC and the asset list): https://www.cryptotimes.io/2026/06/20/
Discussion
mySwap CL is a deliberately preliminary entry: the dollar figure is small, no attacker address is public, and the precise defect is undisclosed, so its near-term value is the mechanism class rather than a fully specified technique. The confirmed part, a fake token abusing a shared vault's concentrated-liquidity accounting to withdraw real assets, is a clean example of a token-admission and value-conservation failure, and it is worth recording as a Starknet data point for the class. The entry maps to T9.004 preliminarily on the basis of the missing validation boundary, and flags a candidate sub-technique for untrusted-token shared-vault accounting abuse; it should be revisited once mySwap or a security firm publishes the line-level bug, at which point it may firm up under a more specific T9 subclass. The secondary lesson is durable regardless of the exact defect: a product closed to new deposits still needs its residual funds withdrawn or its contracts monitored, because closing the deposit path does not make the pooled liquidity safe.