Visor Finance Staking-Reentrancy
Visor Finances Staking-Vertrag verlor 8,2 Mio. $ durch Reentrancy im delegateTransferERC20-Pfad. VISR fiel um 95 %; Visor migrierte zu neuem Token.
- Datum
- Opfer
- Visor Finance
- Chain(s)
- Status
- Teilweise zurückerlangt
Am 21. Dezember 2021 um 14:29 UTC verlor das Active-Liquidity-Management-Protokoll Visor Finance rund 8,2 Millionen Dollar, als ein Angreifer eine Reentrancy im Staking-Vertrag des Protokolls ausnutzte. 8.812.958 VISR-Tokens wurden gestohlen; der Marktpreis des Tokens fiel von rund 0,93 $ auf 0,04 $ — ein 95%-iger Rückgang —, als die Verwässerung und das Protokoll-Versagens-Narrativ sich setzten.
Was geschah
Visors Staking-Vertrag ließ Nutzer VISR über ein externes Interface einzahlen und abheben — IVisor.delegateTransferERC20() —, das der Staking-Vertrag aufrief, um Tokens im Namen des Nutzers zu bewegen.
Das beabsichtigte Verhalten der Funktion: Der Staking-Vertrag ruft delegateTransferERC20() auf, das in die vom Nutzer gelieferte Implementierung zurückruft, die Tokens überträgt. Der Fehler war strukturell: Die vom Nutzer gelieferte Implementierung konnte erneut in den Staking-Vertrag eintreten, bevor die Buchhaltung des ursprünglichen Aufrufs aktualisiert wurde.
Der Angriff:
- Der Angreifer deployte einen Vertrag, der ein bösartiges
delegateTransferERC20()implementierte, das beim Aufruf durch Visors Staking-Vertrag erneut in die Abhebungsfunktion des Staking-Vertrags eintrat. - Die Reentrancy ließ den Angreifer VISR mehrfach gegen denselben gestakten Saldo abheben — jeder Wiedereintritt las den unverminderten Saldo und genehmigte eine weitere Abhebung.
- Entzog 8,8M VISR in einer einzigen Transaktions-Schleife.
Nachwirkungen
- Visor pausierte den Betrieb und kündigte eine Token-Migration zu einem neuen VISR-Vertrag an — altes VISR wurde effektiv null und neue Token wurden an legitime Inhaber zum Pre-Vorfall-Snapshot ausgegeben.
- Das Team betonte, dass Positionen und aktive Hypervisor unbeeinflusst waren — der Verlust war auf den Staking-Vertrag begrenzt.
- VISR-Token (und später die umbenannte Gamma Strategies-Evolution des Protokolls) erholten sich im folgenden Jahr teilweise.
Warum es zählt
Visor ist Teil einer Sequenz von Reentrancy-Vorfällen Ende 2021 (Cream Finance AMP im August, Visor im Dezember, Fei/Rari im April 2022), die eine Lehre wiederherstellten, die die Branche angeblich fünf Jahre zuvor mit The DAO gelernt hatte: Vertraue niemals einem Callback von einem externen Vertrag während Zustandsmutation. Die strukturelle Ursache — Staking-Verträge, die vom Nutzer gelieferte Callback-Implementierungen ohne ordnungsgemäße Reentrancy-Guards aufrufen — wiederholt sich jedes Mal, wenn ein Protokoll-Design Composability-Flexibilität über strikte Checks-Effects-Interactions-Disziplin stellt.
Die Token-Migrations-Reaktion ist auch lehrreich: Einen neuen Token auszugeben und den alten zu annullieren ist eine mächtige, umstrittene Behebung, die nur funktioniert, wenn das Protokoll einen sinnvollen Prozentsatz der Liquidität kontrolliert und Community-Legitimität hat, um den Swap zu koordinieren. Kleinere Protokolle können es nicht durchziehen; größere brauchen es selten.
Quellen & On-Chain-Belege
- [01]cryptobriefing.comhttps://cryptobriefing.com/8-2m-lost-visor-finance-suffers-latest-defi-hack/
- [02]finance.yahoo.comhttps://finance.yahoo.com/news/visor-finance-suffers-another-defi-094645929.html
- [03]ihodl.comhttps://ihodl.com/topnews/2021-12-21/visor-finance-hacked-loses-over-8m-tokens/