CVE-2025-47774 in Vyper
الملخص
بحسب VulDB • 19/05/2026
Vyper هو لغة البرمجة ذات الطابع البايثوني (Pythonic) لآلة الإيثريوم الافتراضية (Ethereum Virtual Machine). في الإصدارات التي تصل إلى 0.4.2rc1 وتشملها، يمكن للدالة المدمجة `slice()` تخطي الآثار الجانبية (side effects) عندما يكون طول المخرجات 0، وكان مصدر سلسلة البايتات (bytestring) دالة مدمجة (`msg.data` أو `.code`). يعود السبب في ذلك إلى أنه بالنسبة لمواقع المصدر هذه، يتم تخطي التحقق من أن `length >= 1`. النتيجة هي أنه يمكن تمرير سلسلة بايتات بطول 0 تم إنشاؤها باستخدام `slice` إلى `make_byte_array_copier`، والتي تتخطى تقييم وسيطتها المصدرية عندما يكون الحد الأقصى للطول 0. الأثر المترتب على ذلك هو أنه قد يتم تخطي الآثار الجانبية الموجودة في وسيط `start` عندما يكون وسيط `length` مساوياً لـ 0، على سبيل المثال: `slice(msg.data, self.do_side_effect(), 0)`. يعالج الإصلاح الوارد في طلب السحب (pull request) رقم 4645 هذه المشكلة من خلال منع أي استدعاء لـ `slice()` بطول 0، بما في ذلك الحالات الخاصة المذكورة في هذا البيان. من المتوقع أن يكون هذا الإصلاح جزءاً من الإصدار 0.4.2.
If you want to get best quality of vulnerability data, you may have to visit VulDB.