Aller au contenu
Glossaire

Réentrance

Une classe de vulnérabilité dans laquelle un contrat appelle un autre contrat avant de mettre à jour son propre état, ce qui permet au contrat externe de rappeler et d’agir sur un état obsolète.

Pourquoi c’est important

L’une des vulnérabilités de contrat intelligent les plus anciennes et les mieux comprises, contre laquelle on se protège par des verrous de réentrance. L’incident Curve est notable parce que ces verrous étaient correctement écrits dans le code source, mais émis de manière incorrecte par certaines versions du compilateur.

Ce que vous pouvez vérifier

Le schéma est celui d’un contrat qui envoie de la valeur avant d’avoir fini de mettre à jour sa propre comptabilité, ce qui laisse le code destinataire rappeler pendant que les écritures sont encore obsolètes. Les rapports d’audit et les analyses post-incident le nomment généralement de façon explicite, et le correctif est normalement décrit comme le fait de replacer les mises à jour d’état avant les appels externes.

Où cela est apparu

Dossiers du Registre des incidents qui reposent sur ce point : l’exploitation par appel récursif de The DAO et la réentrance Vyper de Curve Finance.

Pas un conseil. Les définitions servent à comprendre, non à prescrire. Rien ici ne constitue un conseil financier, juridique, fiscal ou de sécurité.