Vyper: Fehlerhafte Optimierung von msg.value | K in ternären Ausdrücken
Zusammenfassung
Vyper-Versionen 0.3.8 bis 0.5.0b1 enthalten einen Fehler im Optimierer. Wenn (msg.value | K) oder (len(msg.data) | K) als Zweig eines ternären Ausdrucks verwendet wird, ersetzt der Compiler diesen Ausdruck bei den Standardeinstellungen -O gas und -O codesize durch die Konstante 1 und gibt keine Warnung aus. Ein betroffener Smart Contract kann dadurch falsche Werte speichern, berechnen, als Index verwenden oder in Events ausgeben, zum Beispiel falsche Einzahlungen erfassen und Gelder sperren. Das Risiko betrifft nur Organisationen, die betroffene Vyper-Smart-Contracts kompilieren oder betreiben.
Betroffen
- Vyper 0.3.8 bis 0.5.0b1 (betroffener Bereich >= 0.3.8, <= 0.5.0b1)
- Standard-Build-Einstellungen -O gas und -O codesize
- Contracts, die msg.value oder len(msg.data) zusammen mit einem ganzzahligen Literal ungleich null und einem bitweisen ODER in einem ternären Ausdruck verwenden
Behoben in
Unbekannt. Es wurde keine bestätigte korrigierte Version identifiziert. Das Herstellerhinweis GHSA-6j9c-gvcw-74fj nennt keine gepatchte Version, und ein Patch-Tracking-Issue (#5289) existiert.
Umgehung
- Mit deaktiviertem Optimierer neu kompilieren (-O none), wie im Advisory-Text angegeben; dies anhand der originalen GHSA-Seite prüfen.
- Ternäre Ausdrücke, die msg.value oder len(msg.data) verwenden, so umschreiben, dass der Wert zuerst einer Variablen zugewiesen wird.
- Bereits bereitgestellte Contracts müssen neu deployt oder migriert werden, damit diese Änderungen wirksam werden.
Ausnutzung
- CISA SSVC führt die Ausnutzung als 'poc' (Proof of Concept), nicht automatisierbar, technische Auswirkung: partiell.
- Eine Ausnutzung in freier Wildbahn ist nicht bekannt.
- Der EPSS-Wert ist niedrig (0.00207 laut Tenable).
Unsere Empfehlung
- Prüfen, ob Ihre Organisation Vyper-Smart-Contracts entwickelt oder betreibt, und welche Compiler-Version und Build-Einstellungen verwendet werden.
- Den Quellcode nach ternären Ausdrücken durchsuchen, die msg.value oder len(msg.data) mit einem bitweisen ODER verwenden.
- Bei Betroffenheit die Contracts durch einen Vyper- oder Smart-Contract-Auditor prüfen lassen, die Workarounds anwenden und vor dem Einsatz mit realen Geldwerten neu kompilieren sowie neu deployen oder migrieren.
- Den GHSA-Hinweis und die Vyper-Release-Liste auf eine korrigierte Version überwachen.
- Für typische KMU-Server, Arbeitsstationen und Netzwerkgeräte: Keine Massnahmen erforderlich.
Öffentliche Exploits
In PoC-in-GitHub, Metasploit und Exploit-DB ist für diese CVE nichts verzeichnet.
Quellen der Recherche
- GitHub Security Advisory GHSA-6j9c-gvcw-74fj github.com
- VulnCheck Advisory www.vulncheck.com
- OSV CVE-2026-114117 osv.dev
- VulDB 423955 vuldb.com
- Vyper issue #5289 (patch tracking) github.com
- Tenable CVE-2026-114117 www.tenable.com
Recherchiert und auf Deutsch und Englisch aufbereitet von einer KI (Claude von Anthropic) auf Basis von NVD, CISA, EPSS und den genannten Quellen. Massgebend sind die Angaben des Herstellers. Recherche vom 01.11.2026 15:18.
Quellen
Der Tracker verbindet offizielle, frei nutzbare Datenquellen – laufend aktualisiert:
- NVD (NIST) – CVE, Bewertung (CVSS), betroffene Produkte
- CISA KEV – von der CISA bestätigt aktiv ausgenutzte Lücken
- CISA Vulnrichment – Einschätzung der CISA (SSVC) im offiziellen CVE-Eintrag
- FIRST EPSS – Wahrscheinlichkeit einer Ausnutzung
- Microsoft MSRC – Patch Tuesday: Lücken, Schweregrad, Updates
- PoC-in-GitHub – öffentliche Proof-of-Concept-Repositories
- Metasploit (Rapid7) – Module des Metasploit Framework
- Exploit-DB (OffSec) – Archiv öffentlicher Exploits (nur Verweise)
- Patch-Tage: offizielle Seiten der Hersteller (je Hersteller verlinkt) (Patch-Tage der Hersteller)
Dieses Angebot nutzt Daten der NVD-API, ist aber von der NVD weder unterstützt noch zertifiziert. EPSS-Daten © FIRST.org.
Betroffen? Wir helfen.
Wir prüfen, ob Ihre Systeme betroffen sind, spielen Updates ein und schliessen die Lücke – auf Wunsch auch laufend mit dem System Health Checker.
