Protección millonaria, impotente ante una sola clave.

Mientras 79thVault informaba a los usuarios sobre una «actualización del sistema», ya se estaban retirando millones de dólares del pool 79AU/USDT. El 7 de octubre, la cartera privilegiada del proyecto usó una función administrativa del token, sacó 79AU del pool de PancakeSwap y vendió las monedas a cambio de USDT. Las primeras estimaciones de daños alcanzaron $12,5 millones, y la causa planteó de inmediato la pregunta: ¿se comprometió la clave o el acceso fue usado por un insider?
GoPlus Security reconstruyó la cadena inicial de siete llamadas por hora. La dirección con el rol OPERATOR_ROLE movió 2,01 millones de 79AU a una cartera externa, tras lo cual los tokens, mediante aproximadamente 95 intercambios, regresaron al mismo pool ya como activo vendible. Las reservas de USDT se redujeron aproximadamente de $15,2 millones a $3,9 millones, y los ingresos se convirtieron en 16 249 BNB. Todas las operaciones se realizaron a través de BNB Chain.
El mecanismo funcionaba gracias a una prerrogativa dentro del contrato 79AU. El operador podía retirar tokens de una dirección seleccionada, incluida la pareja de negociación, y luego llamar a sync() para que el pool aceptara el nuevo estado de las reservas. Ese esquema no requería hackear PancakeSwap. Una sola clave administrativa en la práctica permitía cambiar el balance del pool, y además sin firma múltiple ni retraso en la ejecución de las operaciones.
Más tarde Bitquery calculó que la estimación inicial pasó por alto a un segundo vendedor. Según la reconstrucción de Bitquery, nueve operaciones privilegiadas sacaron 2,52 millones de 79AU, y dos carteras obtuvieron del pool $14,35 millones en USDT y convirtieron los ingresos en 17 881 BNB. El segundo vendedor esperó alrededor de cinco horas y retiró otros $1,75 millones. El código fuente de 79AU no estaba verificado en BscScan.
La historia destaca especialmente porque alrededor del 79% de los tokens de liquidez del pool fueron quemados, es decir, la retirada normal de esa porción de las reservas se consideraba bloqueada. La prerrogativa integrada eludió esa protección, ya que permitía mover los propios 79AU sin redimir los tokens LP. La protección no ayudó. Un riesgo similar por claves privadas ya había llevado a la comprometición de tokens en BSC.
La cuestión sobre el origen del ataque sigue abierta. GoPlus consideró la posibilidad de una filtración de la clave del operador o acciones de una persona con acceso interno. Mayores dudas suscitó una negociación en la blockchain: un mensaje con la propuesta de devolver los activos a cambio de una recompensa del 10% se envió desde esa misma dirección privilegiada que participó en los retiros. Según Bitquery, la otra parte pidió quedarse con el 25%.
79thVault más tarde reconoció el ataque y vinculó el incidente con debilidades en la gestión de permisos. Según el equipo, el atacante obtuvo la clave privada del operador, pero los datos públicos son insuficientes para establecer de forma independiente el método de compromiso o para descartar la versión de insider. El hecho mismo del movimiento de fondos y de las llamadas privilegiadas está confirmado por la blockchain.
El 9 de octubre la historia dio un giro inesperado: a la dirección indicada por el equipo regresaron 15 000 BNB por un valor de alrededor de $11 millones. Según la estimación inicial de 16 249 BNB, la devolución representa alrededor del 92%, pero el cálculo de Bitquery con 17 881 BNB reduce la proporción a aproximadamente el 84%. Operaciones similares de devolución de fondos robados ya se habían visto tras ataques a DeFi, pero la identidad del participante en la operación y el destino del remanente aún no se han revelado.