$BNB La vulnerabilidad de Vesting V2 provoca pérdidas de 1,49 millones de dólares: una lección sobre las «invariantes» en los contratos inteligentes
Otro hackeo más, esta vez debido a un error lógico en el mecanismo de contabilidad de un contrato.
Una vulnerabilidad en Vesting V2 de UNCX dejó al descubierto una falla en la forma de contabilizar las participaciones, lo que permitió a un atacante inflar la cantidad de tokens que podía reclamar de un fondo compartido. Se drenaron aproximadamente 1,49 millones de dólares de las redes Ethereum, BNB Chain, Base y Robinhood.
Según los detalles proporcionados por Gonçalo Magalhães (Immunefi):
La función de liberación no descontaba las participaciones que ya se habían liberado.
Posteriormente, la función de cancelación contabilizaba dos veces las participaciones no adquiridas, inflando artificialmente el valor de la participación restante.
El contrato no logró mantener una «invariante» respecto al contador global de participaciones.
Este es un error clásico: se ha roto una invariante. El problema no reside en una sola función, sino en que el contrato no garantiza que la cantidad total de participaciones refleje siempre la realidad. Cuando existe un contador global, todas las funciones deben respetarlo. En este caso, tanto la función de liberación como la de cancelación incumplieron esa obligación.
Magalhães recomienda una respuesta mesurada: primero, contactar en privado al equipo afectado y a los principales depositantes; emitir una advertencia pública para retirar los fondos solo como último recurso. El historial de transacciones puede servir para distinguir al atacante original de quienes lo imitan. Este enfoque profesional ayuda a evitar el pánico innecesario.
En cuanto a UNCX, el equipo ha aumentado las comisiones para evitar nuevas explotaciones, está coordinándose con las fuerzas del orden y tiene previsto publicar un análisis técnico completo junto con un plan de corrección.
Los contratos inteligentes no solo deben «funcionar», también deben proteger sus invariantes fundamentales. Una sola operación de resta que falte puede provocar pérdidas de millones de dólares. En definitiva, un contrato de vesting sigue siendo un contrato inteligente y, como cualquier otro, es susceptible de sufrir un hackeo.
Una vulnerabilidad contable aparentemente menor, pero con consecuencias enormes. ¿Qué opinan?
Otro hackeo más, esta vez debido a un error lógico en el mecanismo de contabilidad de un contrato.
Una vulnerabilidad en Vesting V2 de UNCX dejó al descubierto una falla en la forma de contabilizar las participaciones, lo que permitió a un atacante inflar la cantidad de tokens que podía reclamar de un fondo compartido. Se drenaron aproximadamente 1,49 millones de dólares de las redes Ethereum, BNB Chain, Base y Robinhood.
Según los detalles proporcionados por Gonçalo Magalhães (Immunefi):
La función de liberación no descontaba las participaciones que ya se habían liberado.
Posteriormente, la función de cancelación contabilizaba dos veces las participaciones no adquiridas, inflando artificialmente el valor de la participación restante.
El contrato no logró mantener una «invariante» respecto al contador global de participaciones.
Este es un error clásico: se ha roto una invariante. El problema no reside en una sola función, sino en que el contrato no garantiza que la cantidad total de participaciones refleje siempre la realidad. Cuando existe un contador global, todas las funciones deben respetarlo. En este caso, tanto la función de liberación como la de cancelación incumplieron esa obligación.
Magalhães recomienda una respuesta mesurada: primero, contactar en privado al equipo afectado y a los principales depositantes; emitir una advertencia pública para retirar los fondos solo como último recurso. El historial de transacciones puede servir para distinguir al atacante original de quienes lo imitan. Este enfoque profesional ayuda a evitar el pánico innecesario.
En cuanto a UNCX, el equipo ha aumentado las comisiones para evitar nuevas explotaciones, está coordinándose con las fuerzas del orden y tiene previsto publicar un análisis técnico completo junto con un plan de corrección.
Los contratos inteligentes no solo deben «funcionar», también deben proteger sus invariantes fundamentales. Una sola operación de resta que falte puede provocar pérdidas de millones de dólares. En definitiva, un contrato de vesting sigue siendo un contrato inteligente y, como cualquier otro, es susceptible de sufrir un hackeo.
Una vulnerabilidad contable aparentemente menor, pero con consecuencias enormes. ¿Qué opinan?