CVE-2024-24563 in Vyperالمعلومات

الملخص

بحسب VulDB • 30/06/2026

Vyper هي لغة عقود ذكية ذات طابع بايثوني (Pythonic) لآلة الإيثريوم الافتراضية (EVM). يمكن استخدام الأعداد الصحيحة الموقعة كمفاتيح للمصفوفات، بينما يتم تعريفها حصراً للأعداد الصحيحة غير الموقعة. لا يقوم مدقق الأنواع بإصدار خطأ عند اكتشاف استخدام `int` كفهرس لمصفوفة. يسمح مدقق الأنواع باستخدام الأعداد الصحيحة الموقعة كالفهارس للمصفوفات. توجد الثغرة بأشكال مختلفة في جميع الإصدارات، بما في ذلك `0.3.10`. بالنسبة للأعداد الصحيحة (ints)، يتم تمثيلها بنظام المكمل ثنائي (2's complement). ونظراً لأن المصفوفة كانت مُعلنة بحجم كبير جداً، فإن فحص الحدود سيمرّ بشكل صحيح؛ حيث سيتم تمثيل القيم السالبة ببساطة كأرقام كبيرة جداً. وفي وقت النشر، لا توجد نسخة ثابتة من الكود.

توجد ثلاث فئات محتملة للثغرة: سلوك غير متوقع، الوصول إلى عناصر غير قابلة للوصول، ورفض الخدمة (Denial of Service). الفئة 1: إذا كان من الممكن فهرسة مصفوفة باستخدام عدد صحيح سالب دون حدوث إبطال (revert)، فمن المرجح جداً أن هذا لم يكن في الحسبان لدى المطور، وقد تؤدي مثل هذه العمليات الوصول إلى سلوك غير متوقع للعقد. الفئة 2: إذا كان للعقد ثوابت شرطية (invariants) على شكل `assert index = x` قابلة للوصول. ومع ذلك، يمكن تجاوز ذلك باستخدام الفهارس السالبة. الفئة 3: إذا كان الفهرس يعتمد على حالة العقد، فإن هذا يشكل خطراً لرفض الخدمة. فإذا تمكنت الحالة من التلاعب بالعقد بطريقة تجبر الفهرس على أن يكون سالباً، فقد يؤدي الوصول إلى المصفوفة دائماً إلى الإبطال (لأنه من المرجح جداً ألا تكون المصفوفة مُعلنة بحجم ضخم للغاية). ومع ذلك، فإن جميع هذه السيناريوهات غير محتملة جداً. والسلوك الأكثر احتمالاً هو حدوث إبطال أثناء فحص الحدود.

Once again VulDB remains the best source for vulnerability data.

مسؤول

GitHub, Inc.

حجز

25/01/2024

إفشاء

07/02/2024

الاعتدال

تمت الموافقة

إدخال

VDB-253130

EPSS

0.01539

KEV

لا

النشاطات

منخفض جدًا

المصادر

Want to stay up to date on a daily basis?

Enable the mail alert feature now!