Am 17. Februar 2023 verlor die Trading-App Dexible rund 2 Millionen $, als ein Angreifer die selfSwap-Funktion exploitete, die einen beliebigen externen Aufruf mit vom Nutzer gelieferter Router-Adresse und Calldata ohne Validierung machte. Der Angreifer richtete sie auf Token-Contracts und rief transferFrom gegen jede Wallet auf, die Dexible Approvals erteilt hatte.
Was geschah
selfSwap war so konzipiert, Trades über einen vom Aufrufer angegebenen beliebigen DEX-Router zu leiten. Es schränkte weder Ziel noch Calldata ein. Der Angreifer rief es mit Ziel = ein Token-Contract und Calldata = transferFrom(victim, attacker, balance) auf und zog rund 2 Mio. $ aus approval-gebenden Wallets über Ethereum und Arbitrum ab.
Folgen
- Dexible pausierte den Contract und drängte Nutzer, Approvals zu widerrufen.
- Das Team veröffentlichte ein Post-Mortem; teilweise Mitigation folgte.
Warum es wichtig ist
Dexible ist eine der reinsten Ausprägungen des „beliebiger externer Aufruf mit aufrufer-kontrolliertem Ziel"-Anti-Patterns — strukturell identisch zu Furucombo, Transit Swap und LI.FI. Jeder Approval-haltende Contract, der den Aufrufer Ziel-Contract und Daten frei wählen lässt, ist ein universeller Wallet-Drainer für seine Nutzer. Die Regel ist absolut und wird ständig verletzt: Nie einen unvalidierten externen Aufruf aus einem Contract machen, der Nutzer-Approvals hält. Aggregator-UX will flexibles Routing; Sicherheit verlangt eine Allowlist. Der Katalog zeigt, wie genau dieser Trade-off Jahr für Jahr auf dieselbe Weise verloren wird.
Quellen & On-Chain-Belege
- [01]halborn.comhttps://www.halborn.com/blog/post/explained-the-dexible-hack-february-2023
- [02]blockapex.iohttps://blockapex.io/dexible-hack-analysis/
- [03]rekt.newshttps://rekt.news/dexible-rekt