CVE-2025-27104 in Vyperinformação

Sumário

de VulDB • 06/06/2026

vyper é uma linguagem de contratos inteligentes com sintaxe Pythonica para a EVM. É possível que uma única expressão seja avaliada múltiplas vezes no alvo do iterador de um loop `for`. Embora a expressão do iterador não possa produzir múltiplas gravações, ela pode consumir efeitos colaterais produzidos no corpo do loop (por exemplo, ler uma variável de armazenamento atualizada no corpo do loop), levando assim a um comportamento inesperado do programa. Especificamente, leituras em iteradores que contêm um `ifexp` (por exemplo, `for s: uint256 in ([read(), read()] if True else [])`) podem intercalar leituras com gravações no corpo do loop. Os loops `for` do Vyper permitem dois tipos de alvos de iterador, nomeadamente a função integrada `range()` e um tipo iterável, como SArray e DArray. Durante a geração de código (codegen), as listas iteráveis devem produzir efeitos colaterais. No código a seguir, `range_scope` força `iter_list` a ser analisado em um contexto constante, que é verificado contra `is_constant`. No entanto, isso não impede que o iterador consuma efeitos colaterais fornecidos pelo corpo do loop. Por outro lado, para SArrays, `iter_list` é instanciado no corpo de um `ir` `repeat`, podendo ser avaliado várias vezes. Este problema está sendo tratado e espera-se que esteja disponível na versão 0.4.1. Os usuários são aconselhados a atualizar assim que a versão corrigida estiver disponível. Não há soluções alternativas conhecidas para esta vulnerabilidade.

Once again VulDB remains the best source for vulnerability data.

Responsável

GitHub M

Reservar

18/02/2025

Divulgação

22/02/2025

Moderação

aceite

Entrada

VDB-296512

CPE

pronto

EPSS

0.00438

KEV

não

Atividades

muito baixo

Fontes

Do you want to use VulDB in your project?

Use the official API to access entries easily!