Saltar al contenido
Est. MMXXVIVol. VI · № 273RSS
Blockchain Breaches

Archivo de incidentes de seguridad en criptomonedas — hackeos, exploits, fallos de puentes y rug pulls, documentados con evidencia on-chain.

Expediente № 098Ataque de gobernanza

Bug del inicializador de gobernanza de Audius

Un atacante explotó un fallo del inicializador de Audius para auto-delegarse 10 billones de AUDIO y aprobar una propuesta que drenó $6M de la tesorería.

Fecha
Víctima
Audius
Cadena(s)
Estado
Fondos robados

El 23 de julio de 2022, la plataforma descentralizada de streaming de música Audius perdió 18,56 millones de tokens AUDIO — valorados en aproximadamente 6,05 millones de dólares en ese momento — cuando un atacante explotó una vulnerabilidad en el código de inicialización del contrato de gobernanza del protocolo. El bug había estado presente a través de dos auditorías separadas por OpenZeppelin.

Qué ocurrió

Audius usaba contratos de gobernanza actualizables que dependían de funciones inicializadoras para establecer su estado crítico en el momento del despliegue. Las funciones de inicialización estaban destinadas a ser de un solo disparo — invocables exactamente una vez, por el desplegador del contrato, inmediatamente después del despliegue.

El bug: el inicializador para uno de los contratos de gobernanza era invocable repetidamente bajo condiciones específicas. El atacante lo re-invocó para tomar el control del estado del contrato, incluyendo el almacenamiento de delegación y staking que determinaba quién tenía poder de voto de gobernanza.

Con control del almacenamiento, el atacante:

  1. Re-definió su dirección como poseedora de 10 billones de AUDIO en poder de voto delegado.
  2. Envió una propuesta de gobernanza maliciosa que retiraba toda la tesorería de la comunidad a una wallet controlada por el atacante.
  3. Votó sí en su propia propuesta con el poder de voto fabricado de 10 billones.
  4. El primer intento falló debido a un problema separado; el segundo intento tuvo éxito.
  5. Ejecutó la propuesta, transfiriendo 18.564.497 AUDIO fuera de la tesorería, luego los intercambió en Uniswap por 704 ETH (~$1,09M). Los tokens restantes perdieron la mayor parte de su valor cuando el mercado descontó la dilución.

Consecuencias

  • Audius detectó el exploit aproximadamente 30 minutos después del primer intento fallido y desplegó una corrección en una hora.
  • El equipo publicó un post-mortem y reembolsó a los titulares de tokens afectados mediante una combinación de reestructuración de tesorería y ajustes de suministro de tokens.
  • Los contratos habían sido auditados por OpenZeppelin dos veces; ninguna auditoría detectó el bug del inicializador re-invocable.

Por qué importa

Audius es el caso canónico de por qué las funciones inicializadoras son primitivas peligrosas. El patrón se repite en todo el ecosistema de proxy actualizable:

  • Parity Multisig (2017) — un initWallet re-invocable permitió tanto el robo original de $30M como el posterior congelamiento de $150M.
  • Audius (2022) — misma causa raíz, diferente arquitectura de contrato, pérdida de $6M.
  • El patrón sigue apareciendo porque la implementación segura (modificador initializer, comprobaciones explícitas de propiedad, despliegue + inicialización atómicos) está a una anotación extra de la insegura.

La lección más profunda de Audius es más incómoda: dos auditorías de una firma de primer nivel no detectaron este bug. Las auditorías proporcionan protección significativa pero no absoluta; la verificación formal de los patrones de inicialización y el fuzzing de invariantes económicos de los contratos de gobernanza son las capas defensivas adicionales que se han vuelto más comunes desde entonces.

Fuentes y evidencia on-chain

  1. [01]decrypt.cohttps://decrypt.co/105913/how-audius-was-hacked-6m-ethereum-tokens
  2. [02]cryptoslate.comhttps://cryptoslate.com/attackers-stole-6-million-from-audius-by-exploiting-a-bug-in-the-contract/
  3. [03]bleepingcomputer.comhttps://www.bleepingcomputer.com/news/security/hackers-steal-6-million-from-blockchain-music-platform-audius/

Registros relacionados