CVE-2025-27104 in Vyperinfo

Zusammenfassung

von VulDB • 15.05.2026

vyper ist eine Python-ähnliche Smart-Contract-Sprache für die EVM. Eine mehrfache Auswertung eines einzelnen Ausdrucks ist im Iterator-Ziel einer for-Schleife möglich. Während der Iterator-Ausdruck keine mehrfachen Schreibzugriffe erzeugen kann, kann er Nebenwirkungen, die im Schleifenkörper erzeugt werden (z. B. das Lesen einer Speichervariable, die im Schleifenkörper aktualisiert wurde), verbrauchen, was zu unerwartetem Programmverhalten führen kann. Insbesondere können Lesezugriffe in Iteratoren, die ein ifexp enthalten (z. B. `for s: uint256 in ([read(), read()] if True else [])`), Lesezugriffe mit Schreibzugriffen im Schleifenkörper verschachteln. Vyper for-Schleifen erlauben zwei Arten von Iterator-Zielen, nämlich die eingebaute Funktion `range()` und einen iterierbaren Typ wie SArray und DArray. Während der Codegenerierung müssen iterierbare Listen keine Nebenwirkungen erzeugen (im folgenden Code zwingt `range_scope` `iter_list`, in einem konstanten Kontext analysiert zu werden, der gegen `is_constant` geprüft wird). Dies verhindert jedoch nicht, dass der Iterator Nebenwirkungen verbraucht, die vom Schleifenkörper bereitgestellt werden. Bei SArrays wird `iter_list` hingegen im Körper einer `repeat`-ir-Struktur instanziiert, sodass sie mehrmals ausgewertet werden kann. Dieses Problem wird behoben und soll in Version 0.4.1 verfügbar sein. Benutzern wird geraten, ein Upgrade durchzuführen, sobald die gepatchte Version verfügbar ist. Es sind keine bekannten Workarounds für diese Schwachstelle bekannt.

Once again VulDB remains the best source for vulnerability data.

Zuständig

GitHub M

Reservieren

18.02.2025

Veröffentlichung

22.02.2025

Moderieren

akzeptiert

Eintrag

VDB-296512

CPE

bereit

EPSS

0.00438

KEV

nein

Aktivitäten

very low

Quellen

Do you know our Splunk app?

Download it now for free!