CVE-2025-27104 in Vyperinformación

Resumen

por VulDB • 2026-06-06

vyper es un lenguaje de contratos inteligentes de estilo Pythonic para la EVM. Es posible la evaluación múltiple de una única expresión en el objetivo del iterador de un bucle for. Aunque la expresión del iterador no puede producir múltiples escrituras, puede consumir efectos secundarios generados en el cuerpo del bucle (por ejemplo, leer una variable de almacenamiento actualizada en el cuerpo del bucle) y, por lo tanto, provocar un comportamiento inesperado del programa. Específicamente, las lecturas en iteradores que contienen un ifexp (por ejemplo, `for s: uint256 in ([read(), read()] if True else [])`) pueden entrelazar lecturas con escrituras en el cuerpo del bucle. Los bucles for de Vyper permiten dos tipos de objetivos de iterador, a saber, la función incorporada `range()` y un tipo iterable, como SArray y DArray. Durante la generación de código, se requiere que las listas iterables no produzcan efectos secundarios (en el siguiente código, `range_scope` obliga a que `iter_list` se analice en un contexto constante, lo cual se verifica contra `is_constant`). Sin embargo, esto no impide que el iterador consuma los efectos secundarios proporcionados por el cuerpo del bucle. Por otro lado, para SArrays, `iter_list` se instancia en el cuerpo de un `repeat` ir, por lo que puede evaluarse varias veces. Este problema se está abordando y se espera que esté disponible en la versión 0.4.1. Se recomienda a los usuarios que actualicen tan pronto como esté disponible la versión corregida. No se conocen soluciones alternativas para esta vulnerabilidad.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

Responsable

GitHub M

Reservar

2025-02-18

Divulgación

2025-02-22

Moderación

aceptado

Artículo

VDB-296512

CPE

listo

EPSS

0.00438

KEV

no

Actividades

muy bajo

Fuentes

Do you want to use VulDB in your project?

Use the official API to access entries easily!