Saddle Finance MetaSwap Virtual Price
Saddles sUSDv2-Metapool verlor 11,9 Mio. $, als ein bekannter MetaSwapUtils-Bug versehentlich neu deployt wurde; BlockSec-Bots retteten 3,97 Mio. $ vor.
- Datum
- Opfer
- Saddle Finance
- Chain(s)
- Status
- Teilweise zurückerlangt
Am 30. April 2022 um 07:40 UTC verlor der Stable-Asset-AMM Saddle Finance etwa 11,9 Millionen $, als ein Angreifer den sUSDv2-Metapool durch eine Schwachstelle ausnutzte, die im kanonischen Saddle-Code Monate zuvor gepatcht worden war — aber eine ältere, anfällige Version der MetaSwapUtils-Bibliothek war versehentlich neben dem Metapool neu deployt worden.
Was geschah
Saddles Metapools verwendeten eine geteilte MetaSwapUtils-Bibliothek, um den virtuellen Preis von LP-Tokens während Cross-Pool-Swaps zu berechnen. Eine ältere Version dieser Bibliothek enthielt einen Bug, der sie daran hinderte, virtuelle-Preis-basierte Bewertung korrekt zu verwenden während Metapool-Swaps — ein Angreifer konnte den LP-Token-Preis manipulieren, indem er flash-kredit-finanzierte Swaps durch den Pool routete.
Das Saddle-Team hatte den Bug gepatcht und einen behobenen MetaSwapUtils ins kanonische Saddle-Repository ausgeliefert. Aus Gründen, die das Post-Mortem des Teams als "unbekannter Deployment-Fehler" beschreibt, war der sUSDv2-Metapool auf Ethereum Mainnet mit der ALTEN, anfälligen Bibliothek deployt worden, auch nachdem der Patch verfügbar war.
Der Angriff:
- Flash-borgte Mittel und führte eine Sequenz von Swaps durch den sUSDv2-Metapool aus.
- Manipulierte den virtuellen Preis des LP-Tokens des Metapools über die fehlerhafte Bibliothek.
- Tauschte die künstlich bepreisten LP-Tokens gegen sUSD und andere zugrundeliegende Vermögenswerte und ging mit dem Wert.
Anfänglicher Drain: ~14,8 Mio. $ in gemischten Vermögenswerten.
Folgen
- BlockSecs Whitehat-Bots entdeckten das Exploit-Muster on-chain und retteten mit einem internen "front-run-the-exploit"-Service 3,97 Mio. $, indem sie denselben Exploit nachspielten und die Erlöse an eine Wiederherstellungsadresse routeten.
- Saddle pausierte Metapool-Swaps und migrierte zu einem verifiziert-korrekten Deployment von
MetaSwapUtils. - Nettoverlust nach BlockSecs Rettung: ~11,9 Mio. $, nie vom ursprünglichen Angreifer zurückgewonnen.
Warum es wichtig ist
Saddle ist der Lehrbuchfall dafür, warum Deployment-Provenienz mit dem Code-Repository übereinstimmen muss, Ende-zu-Ende. Ein im Quellcode gefixter Bug ist erst für Nutzer gefixt, wenn der On-Chain-Vertrag die gepatchte Version reflektiert. Jede Deployment-Pipeline eines Protokoll-Teams muss automatisch verifizieren, dass der Bytecode jedes Live-Vertrags mit dem vom auditierten Quellcode produzierten Bytecode übereinstimmt — und dass die Bibliotheken, von denen er abhängt, die auditierten Versionen sind, nicht veraltete Kopien.
Die BlockSec-Rettung ist auch eines der saubereren Beispiele dafür, dass White-Hat-MEV echte Arbeit leistet — Pattern-Matching auf die bösartige Transaktions-Form und Front-Running zusätzlicher Opfer desselben Exploits, bevor sie geleert werden konnten. Die Praxis ist jetzt bedeutsam institutionalisiert; Firmen wie BlockSec, HYDN und bestimmte Flashbots-Betreiber betreiben Watcher-Infrastruktur, die seitdem Hunderte von Millionen an DeFi-Kapital gerettet hat.
Quellen & On-Chain-Belege
- [01]blog.saddle.financehttps://blog.saddle.finance/4-30-2022-post-mortem-of-mainnet-susdv2-metapool-exploit/
- [02]medium.comhttps://medium.com/immunefi/hack-analysis-saddle-finance-april-2022-f2bcb119f38
- [03]blocksecteam.medium.comhttps://blocksecteam.medium.com/how-to-exploit-the-same-vulnerability-of-metapool-in-two-different-ways-nerve-bridge-saddle-774c271c8243