CVE-2025-27104 in Vyperinformazioni

Riassunto

di VulDB • 17/06/2026

vyper è un linguaggio di smart contract ispirato a Python per l'EVM. È possibile valutare più volte una singola espressione nel target dell'iteratore di un ciclo `for`. Sebbene l'espressione dell'iteratore non possa generare multiple scritture, può consumare effetti collaterali prodotti all'interno del corpo del ciclo (ad esempio, leggere una variabile di storage aggiornata nel corpo del loop), portando così a comportamenti imprevisti del programma. Nello specifico, le letture negli iteratori che contengono un `ifexp` (ad esempio `for s: uint256 in ([read(), read()] if True else [])`) possono intercalare le operazioni di lettura con quelle di scrittura nel corpo del ciclo. I cicli for di Vyper supportano due tipi di target per l'iteratore, ovvero la funzione integrata `range()` e un tipo iterabile come SArray o DArray. Durante la generazione del codice (codegen), gli elenchi iterable devono essere privi di effetti collaterali (nel seguente esempio, `range_scope` forza il parsing di `iter_list` in un contesto costante, che viene verificato rispetto a `is_constant`). Tuttavia, ciò non impedisce all'iteratore di consumare gli effetti collaterali forniti dal corpo del ciclo. Per quanto riguarda le SArray, invece, `iter_list` è istanziato nel corpo di un ir `repeat`, quindi può essere valutato più volte. Questo problema sta sendo affrontato e si prevede che sia disponibile nella versione 0.4.1. Si consiglia agli utenti di effettuare l'aggiornamento non appena sarà disponibile la release corretta. Non sono noti workaround per questa vulnerabilità.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsabile

GitHub M

Prenotare

18/02/2025

Divulgazione

22/02/2025

Moderazione

accettato

CPE

pronto

EPSS

0.00438

KEV

no

Attività

molto basso

Fonti

Want to know what is going to be exploited?

We predict KEV entries!