El 9 de marzo de 2024, el agregador DEX cross-chain Unizen fue explotado por aproximadamente $2,1 millones — drenados de usuarios que habían concedido aprobaciones de tokens a un contrato recién actualizado. El bug: la actualización introdujo una vulnerabilidad de llamada externa insegura en la ruta del swap. (El ranking de Rekt lista este incidente en $21M; la pérdida verificada en análisis independientes es $2,1M.)
Qué ocurrió
El contrato de agregación DEX de Unizen fue actualizado poco antes del exploit. La actualización introdujo una nueva ruta que hacía llamadas externas arbitrarias durante la ejecución del swap — sin validación rigurosa del objetivo de la llamada o del calldata.
Para los usuarios que habían concedido al contrato de Unizen aprobaciones de tokens — típico para cualquier UX de agregador DEX — el bug creó un patrón familiar: cualquier llamante podía construir un "swap" cuya llamada externa subyacente realizara un transferFrom contra el saldo aprobado de la víctima a la dirección del atacante.
PeckShield señaló el problema públicamente en horas tras las primeras transacciones maliciosas; los investigadores on-chain hicieron emerger el patrón, y Unizen detuvo el contrato afectado.
Consecuencias
- El fundador de Unizen Sean Noga prestó fondos personalmente a la empresa para financiar reembolsos inmediatos a usuarios.
- Los usuarios que habían perdido menos de $750.000 fueron reembolsados; pérdidas mayores se abordaron a través de una vía de negociación separada.
- El contrato fue parcheado y redesplegado con validación adecuada de llamadas externas.
- El atacante blanqueó a través de Tornado Cash; sin recuperación pública.
Por qué importa
Unizen es uno de tres incidentes estructuralmente similares de bugs de aprobación de marzo de 2024 — junto con WOOFi y Dolomite — que destacaron el patrón recurrente de agregadores DEX: los usuarios conceden aprobaciones a un contrato; el contrato tiene cualquier ruta que realice una llamada externa no validada; cualquier llamante puede drenar los saldos aprobados.
La lección estructural es la misma repetida en Furucombo, Transit Swap y LI.FI: las actualizaciones de contrato que tocan la ruta de ejecución del swap deben ser re-auditadas de extremo a extremo, no tratadas como parches rutinarios. La superficie de ataque de un agregador con aprobaciones permanentes es la unión de cada ruta de código que puede ser alcanzada después de que se haya concedido approve(), a través de todo el historial de actualizaciones del contrato.
La respuesta del equipo de Unizen — reembolsos inmediatos financiados por préstamo del fundador — fue inusualmente rápida y completa para la escala de pérdida. Estableció una vara creíble para cómo un equipo de pequeño protocolo puede manejar creíblemente un exploit de tamaño medio sin destruir la confianza del usuario.
Fuentes y evidencia on-chain
- [01]halborn.comhttps://www.halborn.com/blog/post/explained-the-unizen-hack-march-2024
- [02]beincrypto.comhttps://beincrypto.com/unizen-defi-hack-million/
- [03]web3isgoinggreat.comhttps://www.web3isgoinggreat.com/?id=unizen-hack