تحليل عميق لثغرة تجاوز عدد صحيح في وحدة الأمان الخاصة بلغة Move

robot
إنشاء الملخص قيد التقدم

تحليل ثغرة تجاوز سعة الأعداد الصحيحة في وحدة الأمان بلغة Move

ستقوم هذه المقالة بتحليل عميق لثغرة تجاوز السعة العددية المكتشفة حديثًا في لغة Move. توجد هذه الثغرة في وحدة التحقق من الأمان المرجعي، وقد تؤدي إلى تعطل العقد. من خلال شرح هذه المقالة، سيكتسب القارئ فهمًا أعمق للغة Move.

خلفية الثغرات

تقوم لغة Move بالتحقق من الكود قبل تنفيذ بايت كود، وتنقسم إلى 4 خطوات. تظهر هذه الثغرة في خطوة التحقق من الأمان (reference_safety).

العملية الرئيسية للتحقق من الأمان هي:

  1. التعرف على الكتل الأساسية من الشفرات
  2. تحليل كل كتلة أساسية
  3. حالة ما قبل الدمج وما بعده
  4. نقل الحالة إلى الكتل اللاحقة

المفتاح هنا هو الحفاظ على هيكل AbstractState، الذي يحتوي على locals وborrow graph لضمان أمان الإشارات.

اكتشاف حصري من Numen Cyber ثغرة عالية الخطورة أخرى في لغة move

تفاصيل الثغرة

توجد ثغرة في دالة join_. عندما يكون طول معلمات الدالة بالإضافة إلى طول المتغيرات المحلية أكبر من 256، يحدث تجاوز عددي بسبب استخدام نوع u8 للتكرار.

بشكل محدد:

  • iter_locals() يعيد مُكرِر من نوع u8
  • يحدث تجاوز عندما يكون طول المعامل + طول المتغير المحلي > 256
  • قام المطورون بفحص عدد المتغيرات المحلية فقط، متجاهلين طول المعلمات

نومين سايبر اكتشفت حفره خطيرة أخرى في لغة الموف

استغلال الثغرات

يمكن بناء كتلة أساسية حلقية، باستخدام الفائض لتغيير الحالة:

  1. تعيين طول المعلمات والمتغيرات المحلية أكبر من 256
  2. بعد التنفيذ الأول، تقلل طول locals الجديدة من تجاوز السعة
  3. عند التنفيذ مرة أخرى، يؤدي الوصول إلى فهرس locals غير الموجود إلى حدوث panic

كشف حصرية من Numen Cyber عن ثغرة عالية الخطورة في لغة move

عرض PoC

يوفر كود PoC قابل للتكرار، يتضمن كتلة أساسية في حلقة لانهائية. من خلال تعيين المعلمات المناسبة وطول المتغيرات المحلية، يمكن أن يؤدي إلى DoS.

اكتشاف حصري من Numen Cyber لثغرة خطيرة أخرى في لغة move

Numen Cyber اكتشاف حصري لثغرة عالية الخطورة في لغة move

اكتشاف حصري من Numen Cyber ثغرة عالية الخطورة أخرى في لغة move

Numen Cyber اكتشاف حصري لثغرة عالية الخطورة في لغة move

! اكتشفت Numen Cyber حصريا ثغرة أمنية أخرى عالية الخطورة في لغة الحركة

اكتشاف حصري من Numen Cyber: ثغرة عالية الخطورة في لغة move

اكتشاف حصري من Numen Cyber عن ثغرة عالية الخطورة في لغة move

نومين سايبر اكتشفت ثغرة خطيرة أخرى في لغة move

اكتشاف حصري من Numen Cyber لثغرة عالية الخطورة أخرى في لغة move

! اكتشفت Numen Cyber حصريا ثغرة أمنية أخرى عالية الخطورة في لغة الحركة

اكتشاف حصري من Numen Cyber ثغرة عالية الخطورة أخرى في لغة move

الاستنتاج

تظهر هذه الثغرة مرة أخرى أن:

  1. لا يوجد كود آمن بشكل مطلق
  2. أهمية تدقيق الشفرة
  3. تتطلب بيئة تشغيل Move المزيد من الفحوصات الأمنية
  4. قد يتم تخطي التحقق الثابت، والأمان في وقت التشغيل مهم بنفس القدر

بصفتنا رواد البحث في أمان لغة Move، سنواصل الغوص في القضايا الأمنية ذات الصلة ومشاركة نتائج أبحاثنا مع المجتمع.

نومين سايبر تكشف عن ثغرة عالية الخطورة في لغة move

MOVE2.93%
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 8
  • مشاركة
تعليق
0/400
WhaleMinionvip
· 07-26 05:03
هجمات تجاوز سعة u8 قد جاءت
شاهد النسخة الأصليةرد0
MevTearsvip
· 07-24 04:19
من كتب هذا الكود؟ يجب التحقق منه عشر مرات.
شاهد النسخة الأصليةرد0
GasFeeCryervip
· 07-23 13:34
الثغرات يمكن اللعب بها وهناك هجوم حرمان الخدمة، رائحة رائعة!
شاهد النسخة الأصليةرد0
TopEscapeArtistvip
· 07-23 05:47
ارتكاب الأخطاء هو الروتين اليومي لسوق الدببة، ويجب أن تكون أكثر حذراً عند نقل الطوب.
شاهد النسخة الأصليةرد0
TokenomicsTherapistvip
· 07-23 05:45
هذه المشكلة مخيفة حقًا
شاهد النسخة الأصليةرد0
TxFailedvip
· 07-23 05:43
هههه، تجاوز عدد صحيح كلاسيكي... تعلمت عن هذه الطريقة المكلفة بصراحة
شاهد النسخة الأصليةرد0
SchrödingersNodevip
· 07-23 05:40
أشعر بالقلق، لماذا توجد كل هذه المشاكل؟
شاهد النسخة الأصليةرد0
AltcoinMarathonervip
· 07-23 05:40
التمسك خلال عاصفة تجاوز العدد الصحيح... مجرد علامة ميل أخرى في الويب 3 الفائق
شاهد النسخة الأصليةرد0
  • تثبيت