PT-2024-20458 · Vyperlang · Vyper
Cyberthirst
·
Publicado
2024-01-30
·
Atualizado
2024-02-06
·
CVE-2024-24567
CVSS v3.1
5.3
Média
| Vetor | AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N |
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.Exploit
Correção
Improper Check for Exceptional Conditions
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Vyper