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 № 170Fallo de smart contract

Bug de precisión en KyberSwap Elastic

54,7 M$ drenados de KyberSwap Elastic tras un error de redondeo en matemáticas de liquidez concentrada que dejó pools reconocer el doble de liquidez.

Fecha
Víctima
KyberSwap
Estado
Fondos robados
Atribución
Andean Medjedovic (indicted)

El 22 de noviembre de 2023, el exchange descentralizado KyberSwap Elastic fue drenado por aproximadamente 54,7 millones de dólares en cinco cadenas. El exploit encadenó un sesgo sutil de redondeo y un fallo en la secuenciación de actualización de ticks para convencer al AMM de que los pools retenían el doble de liquidez de la que realmente tenían.

Qué ocurrió

KyberSwap Elastic era un AMM de liquidez concentrada estilo Uniswap v3. Los proveedores de liquidez depositaban activos en rangos de precio específicos ("ticks"), y la contabilidad del pool rastreaba qué ticks estaban activos y cuánta liquidez estaba concentrada en cada uno.

El exploit vivía en la interacción entre la función de swap y la lógica de actualización de ticks. Específicamente:

  1. El atacante construyó un swap cuyo monto de entrada calculado caía justo por encima del límite de un tick que contenía su propia liquidez (cuidadosamente colocada).
  2. Debido a la dirección de redondeo en la matemática del swap, el protocolo concluyó que el swap había cruzado el límite del tick y disparó la lógica de actualización de tick que añade la liquidez del siguiente tick al total activo.
  3. Pero el protocolo también había concluido que el tick actual aún tenía suficiente liquidez para satisfacer el swap, por lo que nunca actualizó el estado del tick previamente cruzado.
  4. El resultado: la liquidez en el tick del atacante se contó dos veces: una como aún activa en el rango actual, y de nuevo como añadida al siguiente rango.

Repitiendo esta maniobra a escala en varios pools, el atacante retiró mucho más de cada pool de lo que jamás había depositado.

Consecuencias

  • El atacante drenó a 2.367 proveedores únicos de liquidez por un botín principal de ~48,7 M$, con ~6,6 M$ adicionales barridos por bots imitadores en cuestión de horas.
  • Fiscales federales de EE. UU. imputaron a Andean Medjedovic, canadiense de 22 años, por el exploit, alegando que las acciones on-chain constituían fraude de commodities.
  • KyberSwap publicó un análisis post-mortem detallado, cerró Elastic y enfocó la ingeniería restante en KyberSwap Classic.

Por qué importa

KyberSwap es uno de un pequeño grupo de incidentes —junto con Cetus y Balancer v2— que muestran que la matemática de invariantes de AMM sigue siendo una frontera en código de producción. La misma clase de bug de error de precisión / dirección de redondeo / orden de actualización de estado sigue reapareciendo en distintos diseños de AMM a distintas escalas. La defensa es invariablemente testing de invariantes, fuzzing y verificación formal, y aun así no es infalible.

Fuentes y evidencia on-chain

  1. [01]blog.kyberswap.comhttps://blog.kyberswap.com/post-mortem-kyberswap-elastic-exploit/
  2. [02]halborn.comhttps://www.halborn.com/blog/post/explained-the-kyberswap-hack-november-2023
  3. [03]slowmist.medium.comhttps://slowmist.medium.com/a-deep-dive-into-the-kyberswap-hack-3e13f3305d3a

Registros relacionados