Código-fonte correto, bytecode incorreto
Os pools afetados da Curve declaravam proteção contra reentrância. O código-fonte deles estava certo. O compilador emitiu um bytecode em que a proteção não funcionava como declarado, e a reentrância — a mais antiga classe de vulnerabilidade bem compreendida em contratos inteligentes — tornou-se explorável em contratos que explicitamente se defendiam dela.
Por que este caso é diferente em natureza
Quase todo incidente neste rastreador envolve um defeito que um revisor poderia, em princípio, ter encontrado lendo o código. Este não podia. Um revisor que lesse o código-fonte em Vyper confirmaria que a trava estava presente e corretamente aplicada, e estaria errado sobre o comportamento implantado, sem culpa nenhuma da sua parte.
Isso desloca a fronteira de confiança. O compilador, e a versão específica dele, faz parte daquilo em que é preciso confiar. Todo projeto que publica contratos compilados herda a correção da sua cadeia de ferramentas, tenha alguém pensado nisso ou não.
A verificação que vale fazer
Para qualquer contrato em Vyper ao qual você tenha exposição, a pergunta é qual versão do compilador produziu o bytecode implantado e se essa versão está na lista de afetadas publicada pelo projeto Vyper. Os metadados de versão são registrados na implantação e são verificáveis de forma independente de qualquer alegação feita pelo projeto.
Linha do tempo
Somente de acréscimo. As correções são adicionadas como entrada datada própria; as entradas anteriores nunca são reescritas.
- Vários pools da Curve são explorados por reentrância. A Curve confirma o incidente e identifica as versões do compilador Vyper envolvidas. Curve Finance
- A Curve e o Vyper publicam a lista de versões afetadas do compilador para que outros projetos possam checar suas próprias implantações. Curve Finance
O que verificar
O projeto Vyper e a Curve publicaram quais versões do compilador foram afetadas. A verificação que importa para qualquer contrato em Vyper é qual versão do compilador produziu o bytecode implantado.
A Conisec não hospeda nem linka ferramentas de recuperação, de revogação ou de “verificação”. Depois de um incidente público, atacantes rotineiramente semeiam exatamente esses links usando o nome de publicações que cobrem o caso. Use o canal oficial do próprio projeto afetado, linkado acima, e nada além disso.
Fontes
- Curve Finance, Incident statement and affected Vyper versions (30 jul 2023)
Não é aconselhamento. Este é um resumo de fatos publicados, não orientação jurídica, tributária ou de segurança. Confira nas fontes primárias linkadas acima.
Última verificação por Conisec Staff.