PT-2022-19503 · Vyper · Vyper
Charles-Cooper
·
Publicado
2022-06-06
·
Atualizado
2023-08-02
·
CVE-2022-29255
CVSS v4.0
8.7
Alta
| Vetor | AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N |
Nome do software vulnerável e versões afetadas
Versões do Vyper anteriores à 0.3.4
Descrição
O problema ocorre ao chamar um contrato externo sem valor de retorno, o que pode resultar na avaliação do endereço do contrato duas vezes, incluindo quaisquer efeitos colaterais. Isso pode levar a resultados incorretos nos contratos. O problema geralmente é uma questão de eficiência, mas pode causar a avaliação dupla de efeitos colaterais se a avaliação do endereço do contrato tiver efeitos colaterais.
Recomendações
Para versões anteriores à 0.3.4, atualize para a versão 0.3.4 ou posterior para resolver o problema.
Como solução alternativa temporária, considere atribuir endereços de contrato a variáveis para evitar a avaliação dupla de efeitos colaterais. Por exemplo, em vez de
Foo(Foo(msg.sender).bar()).foo(), use t: Foo = Foo(msg.sender).bar() e, em seguida, t.foo().Exploit
Correção
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Vyper