Zum Inhalt springen
Glossar

Reentrancy

Eine Schwachstellenklasse, bei der ein Contract einen anderen Contract aufruft, bevor er seinen eigenen Zustand aktualisiert, wodurch der externe Contract zurückrufen und auf einem veralteten Zustand handeln kann.

Warum das wichtig ist

Eine der ältesten und am besten verstandenen Smart-Contract-Schwachstellen, gegen die man sich mit Reentrancy Guards schützt. Der Vorfall bei Curve ist bemerkenswert, weil die Guards im Quelltext korrekt geschrieben, von bestimmten Compiler-Versionen aber fehlerhaft ausgegeben wurden.

Was Sie prüfen können

Das Muster ist ein Contract, der Werte versendet, bevor er seine eigene Buchführung fertig aktualisiert hat, sodass der empfangende Code zurückrufen kann, während die Bücher noch veraltet sind. Prüfberichte und Post-mortems benennen es meist direkt, und die Korrektur wird üblicherweise als Umsortieren der Zustandsaktualisierungen vor die externen Aufrufe beschrieben.

Wo es aufgetreten ist

Einträge im Vorfall-Tracker, die hierauf beruhen: The DAO Recursive-Call-Exploit und Curve Finance Vyper-Reentrancy.

Keine Beratung. Definitionen dienen dem Verständnis, nicht der Anleitung. Nichts davon ist eine Finanz-, Rechts-, Steuer- oder Sicherheitsberatung.