Vulnerabilidad en Vyper (CVE-2025-47774)
Gravedad CVSS v4.0:
BAJA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
15/05/2025
Última modificación:
16/05/2025
Descripción
Vyper es el lenguaje de programación Pythonic para la Máquina Virtual de Ethereum. En versiones hasta la 0.4.2rc1 (incluida), la instrucción integrada `slice()` puede omitir efectos secundarios cuando la longitud de salida es 0 y la cadena de bytes de origen es una instrucción integrada (`msg.data` o `.code`). Esto se debe a que, para estas ubicaciones de origen, se omite la comprobación de que `length >= 1`. Como resultado, una cadena de bytes de longitud 0 construida con slice puede pasarse a `make_byte_array_copier`, que omite la evaluación de su argumento de origen cuando la longitud máxima es 0. Esto implica que los efectos secundarios del argumento `start` pueden omitirse cuando el argumento `length` es 0, por ejemplo, `slice(msg.data, self.do_side_effect(), 0)`. La corrección en la solicitud de incorporación de cambios 4645 impide la invocación de `slice()` con longitud 0, incluso para las ubicaciones ad hoc descritas en este aviso. Se espera que la solución sea parte de la versión 0.4.2.
Referencias a soluciones, herramientas e información
- https://github.com/vyperlang/vyper/blob/68b68c4b30c5ef2f312b4674676170b8a6eaa316/vyper/builtins/functions.py#L315-L319
- https://github.com/vyperlang/vyper/blob/68b68c4b30c5ef2f312b4674676170b8a6eaa316/vyper/codegen/core.py#L189-L191
- https://github.com/vyperlang/vyper/pull/4645
- https://github.com/vyperlang/vyper/security/advisories/GHSA-3vcg-j39x-cwfm



