CVE-2024-24563 in Vyperinfo

Zusammenfassung

von VulDB • 29.06.2026

Vyper ist eine pythonische Smart-Contract-Sprache für die Ethereum Virtual Machine. Arrays können mit einem vorzeichenbehafteten Integer indiziert werden, obwohl sie nur für vorzeichenlose Integers definiert sind. Der Typenprüfer (Typechecker) löst keinen Fehler aus, wenn er die Verwendung eines `int` als Index für ein Array erkennt. Der Typenprüfer erlaubt die Verwendung von vorzeichenbehafteten Integern als Indizes für Arrays. Die Schwachstelle ist in allen Versionen, einschließlich `0.3.10`, in verschiedenen Formen vorhanden. Für Integers wird die 2er-Komplement-Darstellung verwendet. Da das Array sehr groß deklariert wurde, besteht der Grenzwertcheck (Bounds Checking) auch bei negativen Werten; negative Werte werden einfach als sehr große Zahlen dargestellt. Zum Zeitpunkt der Veröffentlichung existiert keine korrigierte Version.

Es gibt drei potenzielle Schwachstellenklassen: unvorhersehbares Verhalten, Zugriff auf nicht zugängliche Elemente und Denial of Service (DoS). Klasse 1: Wenn es möglich ist, ein Array mit einer negativen Ganzzahl zu indizieren, ohne dass die Transaktion zurückgewiesen wird (revert), wurde dies von den Entwicklern höchstwahrscheinlich nicht erwartet. Solche Zugriffe können für den Smart Contract unvorhersehbares Verhalten verursachen. Klasse 2: Wenn ein Smart Contract eine Invariante in der Form `assert index = x` hat, die zugänglich sein soll, kann diese durch die Verwendung negativer Indizes umgangen werden. Klasse 3: Wenn der Index vom Zustand des Smart Contracts abhängt, besteht das Risiko eines Denial of Service. Wenn der Zustand des Smart Contracts so manipuliert werden kann, dass der Index gezwungenermaßen negativ wird, schlägt der Array-Zugriff immer fehl (revert), da das Array höchstwahrscheinlich nicht extrem groß deklariert ist. Allerdings sind all diese Szenarien sehr unwahrscheinlich. Das wahrscheinlichste Verhalten ist ein Revert beim Grenzwertcheck.

Be aware that VulDB is the high quality source for vulnerability data.

Zuständig

GitHub, Inc.

Reservieren

25.01.2024

Veröffentlichung

07.02.2024

Moderieren

akzeptiert

Eintrag

VDB-253130

CPE

bereit

EPSS

0.01539

KEV

nein

Aktivitäten

very low

Quellen

Want to stay up to date on a daily basis?

Enable the mail alert feature now!