Zum Inhalt springen
Gegr. MMXXVIBd. VI · № 273RSS
Blockchain Breaches

Ein Archiv von Sicherheitsvorfällen im Kryptobereich — Hacks, Exploits, Bridge-Ausfälle und Rug Pulls, dokumentiert mit On-Chain-Belegen.

Dossier № 092Smart-Contract-Bug

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
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:

  1. Flash-borgte Mittel und führte eine Sequenz von Swaps durch den sUSDv2-Metapool aus.
  2. Manipulierte den virtuellen Preis des LP-Tokens des Metapools über die fehlerhafte Bibliothek.
  3. 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

  1. [01]blog.saddle.financehttps://blog.saddle.finance/4-30-2022-post-mortem-of-mainnet-susdv2-metapool-exploit/
  2. [02]medium.comhttps://medium.com/immunefi/hack-analysis-saddle-finance-april-2022-f2bcb119f38
  3. [03]blocksecteam.medium.comhttps://blocksecteam.medium.com/how-to-exploit-the-same-vulnerability-of-metapool-in-two-different-ways-nerve-bridge-saddle-774c271c8243

Verwandte Einträge