En septiembre de 2024, PenPie, un protocolo de «yield farming» desarrollado sobre Pendle Finance, fue víctima de un ataque de reentrada que provocó una pérdida significativa de 27 millones de dólares en fondos. El ataque pone de relieve la importancia de la seguridad de los contratos inteligentes, especialmente en el ecosistema DeFi, y destaca el papel que desempeñan las auditorías a la hora de prevenir este tipo de vulnerabilidades.
En este artículo se analizarán los detalles del ataque a PenPie, la naturaleza de los ataques por reentrada y cómo las prácticas de auditoría exhaustivas, como las que ofrece AuditOne, pueden ayudar a proteger los protocolos frente a amenazas similares.
Qué ocurrió: Análisis del fallo de seguridad de PenPie
El 3 de septiembre de 2024, PenPie se convirtió en la última plataforma DeFi en sufrir un ataque grave, cuando un atacante se aprovechó de una vulnerabilidad en la función de distribución de recompensas del protocolo, _harvestBatchMarketRewards.
Esta función, encargada de gestionar las recompensas por staking de PenPie, carecía de una protección adecuada contra la reentrada. Este descuido permitió al atacante llamar repetidamente a la función antes de que el contrato tuviera tiempo de actualizar su estado interno, lo que provocó un aumento desmesurado del saldo de recompensas y el consiguiente vaciamiento de los fondos del protocolo.
El atacante utilizó una combinación de fondos de liquidez falsos vinculados a tokens de «rendimiento estandarizado» (SY) sin valor y contratos inteligentes que imitaban a los proveedores de liquidez legítimos. Al manipular el sistema de esta forma, consiguió eludir las medidas de seguridad y reclamar repetidamente recompensas basadas en activos inexistentes.
Ataques por reentrada: cómo funcionan
Un ataque de reentrada se produce cuando un contrato malicioso es capaz de llamar repetidamente a una función vulnerable de otro contrato antes de que este haya finalizado su ejecución. En la mayoría de los casos, esto permite al atacante vaciar los fondos en múltiples ocasiones al impedir que el contrato actualice información clave, como los saldos de los usuarios.
En una función típica de un contrato inteligente, el orden de las operaciones debería consistir en actualizar el estado del contrato (por ejemplo, reducir el saldo tras una retirada) antes de realizar cualquier llamada externa. Sin embargo, en un escenario de reentrada, el contrato del atacante aprovecha la vulnerabilidad llamando repetidamente a la función objetivo antes de que se actualice el saldo.
En el caso de PenPie, el atacante aprovechó esta vulnerabilidad dentro de la función _harvestBatchMarketRewards, lo que le permitió realizar retiradas repetidas engañando al contrato para que creyera que el saldo seguía intacto. A lo largo de tres transacciones, el atacante sustrajo unos 27 millones de dólares del sistema de contratos inteligentes de PenPie.

Análisis de la vulnerabilidad del Protocolo Penpie
El protocolo Penpie fue objeto de un ataque debido a una combinación de una vulnerabilidad de reentrada y un registro en el mercado sin permisos en el contrato PendleStakingBaseUpg.sol. La causa principal de este ataque es la ausencia de una protección contra la reentrada en la función _harvestBatchMarketRewards(), encargada de procesar las transferencias de tokens y calcular las recompensas.
Más información sobre la seguridad de las DeFi: Auditoría de las plataformas de intercambio DeFi. Por qué es importante
Descripción paso a paso del ataque
- Implementación de un contrato de mercado malicioso: El atacante creó primero un «Pendle Market» malicioso mediante la implementación de un contrato SY (rendimiento sintético) manipulado, diseñado para aprovechar la vulnerabilidad de reentrada. A continuación, el contrato de mercado malicioso se registró en Penpie, plataforma que, al ser de acceso libre, permitió al atacante eludir la validación adecuada.
- Manipulación del cálculo de recompensas: Una vez registrado el mercado malicioso, el atacante inició el proceso de obtención de recompensas llamando a la función _harvestBatchMarketRewards(). Dentro de esta función, las recompensas se calculaban en función de los saldos de tokens antes y después de llamar a redeemRewards(). Dado que la función carecía de una protección contra la reentrada, el atacante volvió a entrar en la función durante la fase de cálculo de las recompensas. Al depositar tokens adicionales (como wstETH, sUSDe, egETH y rswETH obtenidos mediante préstamos flash) en el contrato durante esta fase, el atacante infló artificialmente los saldos de tokens, lo que dio lugar a recompensas exageradas.

- Uso de préstamos flash: El atacante utilizó préstamos flash para obtener grandes cantidades de activos, que se depositaron en el contrato malicioso SY. Estos activos se utilizaron para acuñar tokens falsos de Pendle Market, que se depositaron en Penpie. Durante la llamada a «batchHarvestMarketRewards», el contrato malicioso SY devolvió los tokens procedentes de los activos obtenidos mediante préstamos flash como recompensas, aprovechando aún más la vulnerabilidad de reentrada.
- Reclamación de recompensas excesivas: Tras inflar el importe de la recompensa mediante llamadas reentrantes, el atacante pudo reclamar todas las recompensas del sistema llamando a la función claimReward(). Dado que era el único depositante en el mercado falso Pendle Market, recibió todas las recompensas infladas atribuidas a dicho mercado malicioso.
- Conversión a activos originales: Tras obtener y reclamar las recompensas, el atacante se retiró del mercado malicioso, convirtiendo los tokens de Pendle Market de nuevo en sus activos originales y, de este modo, sustrayendo efectivamente dichos activos.

Consecuencias del ataque
La pérdida de fondos socava la confianza en la plataforma y empaña su reputación entre los usuarios y los inversores, lo que puede provocar una disminución de la participación de los usuarios, la fuga de capital (desaparición del TVL) y la reticencia de futuros socios o colaboradores, lo que podría frenar el crecimiento del protocolo. También podrían derivarse consecuencias legales, ya que las partes afectadas podrían emprender acciones judiciales para recuperar sus pérdidas, lo que podría dar lugar a costosos acuerdos extrajudiciales o a un escrutinio por parte de las autoridades reguladoras.
Artículo relacionado: El papel fundamental de los seguros DeFi tras la auditoría de los contratos inteligentes
El papel de la auditoría: cómo podría haber evitado la vulnerabilidad de PenPie
Aunque el protocolo PenPie había sido sometido a auditorías por parte de dos empresas distintas antes del ataque, la vulnerabilidad crítica de reentrada pasó desapercibida. Esto pone de relieve la importancia de llevar a cabo auditorías exhaustivas y continuas de los contratos inteligentes, que vayan más allá de las comprobaciones superficiales y profundicen en los matices de la ejecución de funciones, los cambios de estado y las llamadas externas.
AuditOne se especializa en auditorías rigurosas de contratos inteligentes, diseñadas para detectar vulnerabilidades como la reentrancia. Mediante una combinación de revisiones manuales del código y herramientas de seguridad automatizadas, AuditOne identifica posibles problemas antes de que puedan ser aprovechados. A continuación se explica cómo una auditoría exhaustiva podría haber evitado el ataque a PenPie:
1. Implementación de un mecanismo de protección contra la reentrancia: Una de las soluciones más eficaces para prevenir los ataques por reentrancia es implementar un mecanismo de protección contra la reentrancia. Este mecanismo garantiza que las funciones críticas no puedan invocarse varias veces dentro de la misma transacción, lo que bloquea de forma eficaz los ataques por reentrancia.
2. Patrón «Check-Effects-Interactions»: Esta buena práctica garantiza que los cambios de estado (como la actualización del saldo de un usuario) se produzcan antes de que se realicen llamadas externas. Al seguir este patrón, los contratos inteligentes pueden evitar el tipo de llamadas repetidas a funciones que se observaron en el exploit de PenPie.
3. Validación de entradas y control de acceso: El proceso de auditoría de AuditOne hace hincapié en una validación exhaustiva de las entradas, lo que garantiza que el contrato inteligente solo acepte datos legítimos. En el caso de PenPie, una mejor validación de las entradas podría haber evitado la creación de fondos de liquidez falsos e impedido que el atacante reclamara recompensas basadas en activos inexistentes.
¿Qué pueden aprender los protocolos del «PenPie Hack»?
1. La importancia de las auditorías exhaustivas: Aunque PenPie se sometió a una auditoría, esta no fue suficiente para detectar la vulnerabilidad de reentrada, lo que reafirma la importancia de las auditorías continuas y los programas de recompensas por errores, sobre todo a medida que un protocolo evoluciona y se añaden nuevas funcionalidades.
2. Supervisión de la seguridad en tiempo real: Además de las auditorías previas al despliegue, las herramientas de supervisión en tiempo real, como el sistema de detección de fraudes de CUBE3.AI, pueden ayudar a identificar y mitigar los ataques en el momento en que se producen. En el caso de PenPie, CUBE3.AI detectó la vulnerabilidad a los 32 segundos de que se desplegara el contrato de ataque, lo que proporcionó una capa adicional de defensa contra este tipo de vulnerabilidades al permitir a los equipos responder con mayor rapidez.
3. Vigilancia continua: La auditoría no es un proceso puntual. A medida que las plataformas DeFi crecen y se adaptan a las nuevas demandas de los usuarios, es fundamental realizar revisiones de seguridad periódicas para garantizar que vulnerabilidades como la reentrancia no pasen desapercibidas.
Reflexiones finales
Es probable que el ataque a PenPie no sea ni el primero ni el último que se produzca en el sector DeFi, pero sirve para recordar los peligros que las vulnerabilidades de reentrada suponen para los desarrolladores sin experiencia. Incluso los denominados protocolos «blue chip», como Curve Finance, QuickSwap Lending y CREAM Finance, se han visto afectados por este tipo de ataques. Sin embargo, con unas prácticas de programación adecuadas, estos riesgos pueden mitigarse. Las auditorías de seguridad ofrecen una línea de defensa vital, ya que identifican las vulnerabilidades antes de que puedan ser explotadas. Al combinar la experiencia humana con herramientas automatizadas, AuditOne ayuda a proteger las plataformas DeFi y, por lo tanto, los fondos de los usuarios.
Proteger tu proyecto DeFi es esencial para el crecimiento y la confianza de los usuarios. Empieza por utilizar nuestra herramienta gratuita de lista de comprobación de seguridad de contratos inteligentes para identificar cualquier posible vulnerabilidad.
Reserva tu consulta gratuita sobre seguridad:
Google Calendar: https://calendar.app.google/Ai15eyQhiV5c1pBXA
Telegram: https://t.me/m_ndr


.png)






