
Reentrancy décryptée – Le bug des contrats intelligents qui vide toujours des millions en 2026, et le patron Checks-Effects-Interactions qui l’arrête dans le code La reentrancy n’est pas de la magie. C’est un bug d’ordre : votre contrat met à jour son propre état APRÈS avoir effectué un appel externe, au lieu de le faire avant, et un attaquant réentre pendant cet intervalle. Corrigez l’ordre et le bug disparaît. Le DAO a perdu environ 3,6 M ETH (environ 60 M $, soit 5 % de tous les ETH existants à l’époque) à cause de cette erreur exacte le 17 juin 2016. Les conséquences ont divisé Ethereum en ETH et ETC. Dix ans plus tard, il continue de vider des fonds. Solv Protocol a perdu 2,73 M $ à cause d’une reentrancy le 5 mars 2026, et environ 52 M $ ont été volés sur divers protocoles onchain en mai 2026 (DeFiLlama via CryptoTimes, 31 mai 2026). Le patron vulnérable : lire le solde, envoyer les ETH avec un appel de bas niveau, puis définir le solde à zéro. La fonction receive() de l’attaquant réentre dans withdraw() avant que ce zéro ne soit appliqué, et boucle jusqu’à ce que le contrat soit vide. Deux correctifs, à utiliser ensemble : Checks-Effects-Interactions. Validez, mettez à jour TOUT l’état, puis effectuez l’appel externe en dernier. Déplacez balances[msg.sender] = 0 avant l’appel : l’appel réentrant lira alors zéro et annulera l’exécution. Le gardien nonReentrant d’OpenZeppelin. Un mutex de stockage (NOT_ENTERED à ENTERED) qui annule en cas de réentrée. Utilisez-le ET CEI, pas l’un ou l’autre. Deux erreurs que les développeurs commettent encore souvent : 1. .transfer() n’est plus un bouclier : la provision de 2300 gaz n’est plus une hypothèse sûre depuis qu’EIP-1884 a augmenté le coût de SLOAD en 2019. Utilisez .call{value:}("") avec CEI. 2. La reentrancy en lecture seule contourne un gardien standard, car une fonction view en lecture pendant une mise à jour renvoie un état corrompu et peut empoisonner une oracle de prix (dForce, 3,64 M $). À des fins éducatives uniquement. Pas un conseil financier. Suivez-nous pour des insights quotidiens – là où la blockchain rencontre l’IA, une swipe satisfaisante à la fois. #Solidity #SmartContractSecurity #Web3Security #Ethereum #DeFi #SmartContracts #BlockchainDeveloper #SolidityDev #EVM #OpenZeppelin #Reentrancy #Web3Dev #BlockchainSecurity #DeFiSecurity #SmartContractAudit #CodeSecurity #OnChain #BlockchainEducation


