تعرضت شبكة جارفيز لهجوم إعادة دخول بواسطة القروض السريعة وخسرت 663,101 MATIC

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

تحليل هجوم إعادة إدخال القروض السريعة على مشروع Jarvis Network

تشير البيانات إلى أنه في 15 يناير 2023 الساعة 17:43:37 بالتوقيت العالمي المنسق، تعرض مشروع Jarvis_Network لهجوم، مما أسفر عن خسارة 663,101 من MATIC.

تحليل مكدس استدعاء المعاملات يكشف أن هناك منطق إعادة الدخول أثناء عملية إزالة السيولة. الاستدعاءات الوظيفية لنفس العقد قبل وبعد إعادة الدخول تستخدم نفس المعلمات، لكن القيم العائدة تختلف اختلافًا كبيرًا:

  • قبل إعادة الدخول: 1,002,157,321,772,769,944
  • إعادة الدخول: 10,091,002,696,492,234,934

تحليل حدث هجوم إعادة الدخول على القروض السريعة من Jarvis Network

تحدث إعادة الإدخال في دالة remove_liquidity. تقوم هذه الدالة بإرجاع الرموز المميزة التي أضافها المستخدم عند إزالة السيولة. نظرًا لأن Polygon و EVM هما سلسلة متجانسة، سيتم تنشيط إعادة الإدخال للعقد عند تحويل MATIC إلى العقد.

أظهر التحليل المتعمق أن المشكلة تكمن في تنفيذ دالة getUnderlyingPrice. تتضمن هذه الدالة سلسلة من الحسابات الداخلية والاستدعاءات الخارجية، حيث أن القيمة المرجعة من دالة get_virtual_price هي المفتاح.

تحليل حدث هجوم إعادة دخول القروض السريعة لشبكة جارفيش

تتأثر قيمة العودة لدالة get_virtual_price بالمتغير self.D. في دالة remove_liquidity، يحدث تحديث self.D بعد تحويل الرموز. يقوم المهاجم بنقل MATIC إلى عقد الهجوم عند إزالة السيولة، وفي وقت استدعاء دالة fallback، يتم استعلام عن سعر الرمز أولاً. نظرًا لأن self.D لم يتم تحديثه بعد، فإن ذلك يؤدي إلى الحصول على سعر خاطئ.

تحليل حدث هجوم إعادة إدخال القروض السريعة لشبكة جارفس

عملية دالة remove_liquidity:

  1. تدمير LP المستخدم
  2. إرسال أموال المستخدم المرهونة
  3. تحديث self.D

استغل المهاجم إعادة الإدخال في الخطوة الثانية، مستخدمًا قيمة self.D غير المحدثة للاقتراض، وحصل على أموال تعادل 10 أضعاف السعر الطبيعي.

تحليل حدث هجوم إعادة الدخول على القروض السريعة Jarvis Network

على الرغم من أن دالة remove_liquidity تستخدم @nonreentrant('lock') لمنع إعادة الدخول، إلا أن المهاجمين تمكنوا من تجاوز هذه الآلية الواقية من خلال إعادة الدخول عبر العقود.

تحليل حدث هجوم إعادة الدخول على القروض السريعة لشبكة جارفس

كشفت هذه الهجمة عن عدة مشاكل رئيسية:

  1. منطق تعديل المتغيرات بعد الاستدعاء الخارجي أدى إلى استثناء في الحصول على السعر
  2. إعادة الدخول عبر العقود تجعل قفل إعادة الدخول غير فعال
  3. عدم اتباع نمط "الفحص - التأثير - التفاعل" (Checks-Effects-Interactions)

تحليل حادثة هجوم إعادة الدخول على القروض السريعة لشبكة جارفيز

لزيادة الأمان، يجب على فريق المشروع:

  • إجراء تدقيق أمني صارم
  • ضع تعديل المتغيرات قبل الاستدعاء الخارجي
  • استخدام مصادر بيانات متعددة للحصول على الأسعار
  • اتبع "تقييم ثم كتابة إلى المتغير ثم إجراء الاستدعاء الخارجي" معيار البرمجة

تحليل حادثة هجوم إعادة الدخول للقروض السريعة في شبكة جارفيز

من خلال هذه التدابير، يمكن تحسين أمان واستقرار المشروع بشكل كبير، مما يساهم في الوقاية الفعالة من هجمات مماثلة.

تحليل حادثة هجوم إعادة الدخول على القروض السريعة لشبكة جارفس

تحليل حادثة هجوم إعادة دخول القروض السريعة لشبكة جارفيس

تحليل حادثة هجوم إعادة الإدخال على القروض السريعة Jarvis Network

تحليل حادثة هجوم إعادة الدخول على القروض السريعة Jarvis Network

تحليل حدث هجوم إعادة الدخول على القروض السريعة لشبكة جارفي

شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
  • أعجبني
  • 5
  • مشاركة
تعليق
0/400
DisillusiionOraclevip
· 07-25 05:19
تم تفجير المزيد من الأسماك حتى الموت
شاهد النسخة الأصليةرد0
FlatlineTradervip
· 07-23 14:13
لقد حصل حمقى آخر على صندوق الغداء!
شاهد النسخة الأصليةرد0
MidnightGenesisvip
· 07-23 14:09
درجة تشويش الكود غير كافية، كان يجب أن يحدث هذا منذ زمن.
شاهد النسخة الأصليةرد0
CryptoGoldminevip
· 07-23 13:59
دليل بيانات آخر: العقود الذكية تسترجع خسائر بقيمة 65w
شاهد النسخة الأصليةرد0
TooScaredToSellvip
· 07-23 13:50
又另一 أرض انخفض إلى الصفر
شاهد النسخة الأصليةرد0
  • تثبيت