Publicaciones
avatar

Reentrancy descifrada: el bug del contrato inteligente que sigue drenando millones en 2026, y el patrón Checks-Effects-Interactions que lo detiene en el código La reentrancia no es magia. Es un error de orden: tu contrato actualiza su propio estado DESPUÉS de realizar una llamada externa en lugar de antes, y un atacante llama de nuevo durante ese intervalo. Corrige el orden y el bug desaparece. El DAO perdió aproximadamente 3,6 millones de ETH (unos 60 millones de dólares, alrededor del 5% de todo el ETH existente en ese momento) por este error exacto el 17 de junio de 2016. Las consecuencias dividieron a Ethereum en ETH y ETC. Diez años después, sigue drenando fondos. Solv Protocol perdió $2,73 millones por una reentrancia el 5 de marzo de 2026, y aproximadamente $52 millones fueron robados en diversos protocolos onchain en mayo de 2026 (DeFiLlama vía CryptoTimes, 31 de mayo de 2026). El patrón vulnerable: leer el saldo, enviar los ETH con una llamada de bajo nivel, LUEGO establecer el saldo en cero. La función receive() del atacante vuelve a entrar en withdraw() antes de que ese cero se registre, y se repite hasta que el contrato queda vacío. Dos soluciones, usadas juntas: Checks-Effects-Interactions. Valida, actualiza TODO el estado y luego realiza la llamada externa por último. Mueve balances[msg.sender] = 0 por encima de la llamada y la llamada reentrante leerá cero y revertirá. La protección nonReentrant de OpenZeppelin. Un mutex de almacenamiento (NOT_ENTERED a ENTERED) que revierte ante la reentrada. Úsalo junto con CEI, no solo uno u otro. Dos cosas que la mayoría de los desarrolladores aún hacen mal. 1. .transfer() ya no es un escudo: el límite de 2300 gas dejó de ser un supuesto seguro cuando EIP-1884 aumentó el gas de SLOAD en 2019. Usa .call{value:}("") con CEI. 2. La reentrancia de solo lectura evade una protección estándar, porque una función view que lee durante una actualización devuelve un estado corrupto y puede envenenar un oracle de precios (dForce, $3,64 millones). Solo con fines educativos. No es asesoramiento financiero. Síguenos para obtener ideas diarias: donde la cadena de bloques se encuentra con la IA, un deslizamiento satisfactorio a la vez. #Solidity #SmartContractSecurity #Web3Security #Ethereum #DeFi #SmartContracts #BlockchainDeveloper #SolidityDev #EVM #OpenZeppelin #Reentrancy #Web3Dev #BlockchainSecurity #DeFiSecurity #SmartContractAudit #CodeSecurity #OnChain #BlockchainEducation

Este contenido es solo para fines informativos y educativos. Puede incluir opiniones de terceros, contenido patrocinado o material promocional por el que el creador puede recibir una compensación. Nada en este feed constituye asesoramiento de inversión ni una garantía de rentabilidad. Eres el único responsable de tus propias decisiones de inversión. Investiga siempre por tu cuenta y actúa con precaución antes de operar. No garantizamos la exactitud de la información de terceros y no nos hacemos responsables de las pérdidas que puedas sufrir. El rendimiento pasado no es indicativo de resultados futuros. Consulta nuestros Términos de la Comunidad y la Declaración de Riesgos para más detalles.

avatarPublica tu respuesta

Comentar