Código fuente correcto, bytecode incorrecto
Los pools de Curve afectados declaraban protección frente a la reentrada. Su código fuente era correcto. El compilador emitió un bytecode en el que el cerrojo no funcionaba como se había declarado, y la reentrada —la clase de vulnerabilidad más antigua y mejor comprendida en los contratos inteligentes— pasó a ser explotable en contratos que se habían defendido explícitamente de ella.
Por qué este caso es distinto en su naturaleza
Casi todos los incidentes de este registro implican un defecto que, en principio, un revisor podría haber encontrado leyendo el código. Este no. Un revisor que leyera el código fuente en Vyper confirmaría que el cerrojo estaba presente y correctamente aplicado, y se equivocaría sobre el comportamiento desplegado sin culpa alguna por su parte.
Eso desplaza la frontera de confianza. El compilador, y su versión concreta, forman parte de aquello en lo que hay que confiar. Cualquier proyecto que despliegue contratos compilados hereda la corrección de su cadena de herramientas, se haya parado alguien a pensarlo o no.
La comprobación que merece la pena hacer
Para cualquier contrato en Vyper al que estés expuesto, la pregunta es qué versión del compilador produjo el bytecode desplegado y si esa versión figura en la lista de afectadas que publicó el proyecto Vyper. Los metadatos de versión quedan registrados en el despliegue y son verificables con independencia de lo que afirme el proyecto.
Cronología
Solo se añade. Las correcciones se incorporan como su propia entrada fechada; las entradas anteriores nunca se reescriben.
- Varios pools de Curve son explotados mediante reentrada. Curve confirma el incidente e identifica las versiones del compilador Vyper implicadas. Curve Finance
- Curve y Vyper publican la lista de versiones afectadas del compilador para que otros proyectos puedan comprobar sus propios despliegues. Curve Finance
Qué comprobar
Tanto el proyecto Vyper como Curve publicaron qué versiones del compilador estaban afectadas. La comprobación que importa para cualquier contrato en Vyper es qué versión del compilador produjo el bytecode desplegado.
Conisec no aloja ni enlaza herramientas de recuperación, revocación o «comprobación». Tras un incidente público, los atacantes siembran habitualmente ese tipo de enlaces usando los nombres de las publicaciones que cubren la noticia. Usa el canal oficial del propio proyecto afectado, enlazado más arriba, y nada más.
Fuentes
- Curve Finance, Incident statement and affected Vyper versions (30 Jul 2023)
No es asesoramiento. Esto es un resumen de hechos publicados, no asesoramiento jurídico, fiscal ni de seguridad. Verifícalo con las fuentes primarias enlazadas más arriba.
Última verificación por Conisec Staff.