PT-2022-19503 · Vyper · Vyper

Charles-Cooper

·

Publicado

2022-06-06

·

Atualizado

2023-08-02

·

CVE-2022-29255

CVSS v4.0

8.7

Alta

VetorAV: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

CVE-2022-29255
GHSA-4V9Q-CGPW-CF38
PYSEC-2022-43053

Produtos afetados

Vyper