Vyperlang · Vyper · CVE-2024-24567
**Nome do software vulnerável e versões afetadas**
Versões 0.3.10 e anteriores do Vyper
**Descrição**
O compilador Vyper permite passar um valor na função embutida `raw call`, mesmo que a chamada seja um `delegatecall` ou um `staticcall`. No entanto, no contexto de `delegatecall` e `staticcall`, o tratamento do valor não é possível devido à semântica dos respectivos códigos de operação, e o Vyper ignorará silenciosamente o argumento `value=`. Se a semântica da EVM for desconhecida pelo desenvolvedor, ele poderia suspeitar que, ao especificar o kwarg `value`, exatamente o valor fornecido seria enviado ao destino. Foi realizada uma pesquisa de contratos e nenhum contrato vulnerável foi encontrado em produção.
**Recomendações**
Para as versões 0.3.10 e anteriores, atualize para uma versão que inclua a correção, conforme fornecido no patch https://github.com/vyperlang/vyper/pull/3755.
Como solução temporária, considere evitar o uso do kwarg `value` em `raw call` quando `delegatecall` ou `staticcall` forem fornecidos como kwargs, até que um patch esteja disponível.
Restrinja o acesso à função `raw call` para minimizar o risco de exploração.