تم اختراق بروتوكول Truebit بقيمة 8535.36 ETH بسبب ثغرة تجاوز الأعداد الصحيحة

iconBlockbeats
مشاركة
Share IconShare IconShare IconShare IconShare IconShare IconCopy
AI summary iconملخص

expand icon
أخبار ETH: تم اختراق بروتوكول Truebit في 8 يناير 2026، حيث تم سرقة 8535.36 ETH (حوالي 26.44 مليون دولار). استغل الهجوم تجاوزًا عددًا صحيحًا في Solidity ^0.6.10، على وجه الخصوص في دالة getPurchasePrice. أكدت ExVul Security أن المهاجم استخدم حلقة تران잭شن مكونة من أربع جولات لطباعة وحرق عملات TRU، مما أدى إلى سحب ETH من البروتوكول. تُظهر الحادثة مخاطر استخدام عقود ذكية قديمة. تحديث ETH: تُستخدم أدوات الذكاء الاصطناعي بشكل متزايد للكشف عن الثغرات في مشاريع DeFi القديمة.
العنوان الأصلي: "تحليل ثغرة العقد المسروقة بقيمة 26.44 مليون دولار أمريكي في بروتوكول Truebit"
المصدر الأصلي: ExVul Security


في 8 يناير 2026، تم اختراق بروتوكول Truebit Protocol، مما أدى إلى خسارة 8,535.36 ETH (حوالي 26.44 مليون دولار أمريكي)، وقد أصدر فريق Truebit Protocol الرسمي بيانًا في صباح اليوم التالي لتأكيد الحادثة. وقد قام فريق الأمان ExVul بتحليل تفصيلي للثغرة في هذا الهجوم، والنتائج كما يلي:


التدفق الهجومي


عنوان المهاجم:


0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50


هاش المعاملة المهاجمة:


0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014


أكمل المهاجم الهجوم من خلال معاملة تُكرر استدعاء getPurchasePrice→0xa0296215→0xc471b10b عبر أربع دورات. نأخذ الدورة الأولى كمثال للتحليل.


1. يقوم المهاجم أولاً بدعوة الدالة getPurchasePrice(240442509453545333947284131) والتي تُرجع 0.


2. استدعى المهاجم الدالة 0xa0296215(c6e3ae8e2cbab1298abaa3) مع قيمة msg.value تساوي 0. وأخيراً نجح في تشكيل 240442509453545333947284131 من TRU.



3. يقوم المهاجم بتشغيل الدالة 0xc471b10b(c6e3ae8e2cbab1298abaa3). في النهاية تُدمَر 240442509453545333947284131 وحدة من TRU، ويُكتسب 5105.06 وحدة من ETH.


تحليل منطق الهجوم


من خلال فهم عملية الهجوم المذكورة أعلاه، يمكن ملاحظة بوضوح وجود مشكلة منطقية في وظيفة getPurchasePrice وفي وظيفة 0xa0296215. سنبدأ الآن بالتحليل العميق (نظراً لعدم كشف العقدة المصدرية، فإن الشيفرات التالية هي شيفرات معاد تجميعها).



من خلال مقارنة نقاط التشابه بين الدالتين، يمكننا اكتشاف أن الوظيفة 0x1446 تُستخدم لحساب كمية ETH المطلوبة لشراء كمية معينة من TRU. من الواضح أن هناك مشكلة منطقية في وظيفة 0x1446 تؤدي إلى خطأ في حساب ETH. سيتم تحليل منطق وظيفة 0x1446 بالتفصيل أدناه.



يرجى ملاحظة منطق الدالة 0x1446، نظرًا لأن النتيجة النهائية للحساب v13 == 0، فهذا يعني بالتأكيد أن هناك مشكلة في منطق الحساب المذكور أعلاه. من المهم معرفة أن الوظيفة 0x18ef تشبه _SafeMul، وبالتالي فإن المشكلة تكمن في استخدام الإضافة الأصلية v12 + v9 (النسخة العقدية هي ^0.6.10، لذلك لا توجد فحوصات لحدوث تجاوز).


v12 وv9 تشير على التوالي إلى:



من خلال التحليل المذكور أعلاه، فإن منطق هجوم المهاجم هو إدخال قيمة _amountIn كبيرة جدًا، مما يؤدي إلى تجاوز (overflow) قيمة v12 + v9 إلى قيمة صغيرة جدًا، وأخيرًا تصبح (v12 + v9) / v6 == 0.


ملخص


السبب الجذري وراء الهجوم على بروتوكول Truebit هو وجود ثغرة خطيرة في منطق حساب سعر شراء الرمز المميز، تتعلق بحدوث تجاوز عدد صحيح (integer overflow). نظرًا لاعتماد العقد على إصدار Solidity ^0.6.10 ولم يتم تنفيذ أي فحوصات أمان لعمليات الحسابات الحاسمة، فقد تسبب ذلك في خسارة كبيرة تقدر بـ 8,535.36 ETH. في الوقت الحالي، تم تخفيف مشكلة تجاوز الأعداد الصحيحة في إصدارات Solidity الجديدة. من المرجح أن يكون هذا الهجوم ناتجًا عن قراصنة يستخدمون الذكاء الاصطناعي بشكل تلقائي لفحص بروتوكولات DeFi القديمة التي تم نشرها بالفعل (بما في ذلك هجوم Balancer و yETH في وقت سابق). نعتقد أن هذا النوع من الهجمات باستخدام الذكاء الاصطناعي على بروتوكولات DeFi القديمة سيزداد في المستقبل القريب. لذلك ننصح مطوري المشاريع بإجراء تدقيق أمان جديد على رموز العقود، وإذا تم اكتشاف أي ثغرات، يجب الترقية السريعة للعقود أو نقل الأصول، مع تنفيذ مراقبة سلسلة الكتل للكشف عن أي استثناءات بشكل فوري وتقليل الخسائر إلى الحد الأدنى.


هذا المقال مُقدم من قبل مُساهِمٍ خارجي، ولا يعبّر عن آراء BlockBeats.


انقر لمعرفة المزيد عن وظائف BlockBeats المفتوحة


مرحبًا بك في الانضمام إلى مجتمع BlockBeats الرسمي:

مجموعة اشتراك تيليجرام:https://t.me/theblockbeats

مجموعة المحادثة على تيليجرام:https://t.me/BlockBeats_App

الحساب الرسمي على تويتر:https://twitter.com/BlockBeatsAsia

إخلاء المسؤولية: قد تكون المعلومات الواردة في هذه الصفحة قد حصلت عليها من أطراف ثالثة ولا تعكس بالضرورة وجهات نظر أو آراء KuCoin. يُقدّم هذا المحتوى لأغراض إعلامية عامة فقط ، دون أي تمثيل أو ضمان من أي نوع ، ولا يجوز تفسيره على أنه مشورة مالية أو استثمارية. لن تكون KuCoin مسؤولة عن أي أخطاء أو سهو ، أو عن أي نتائج ناتجة عن استخدام هذه المعلومات. يمكن أن تكون الاستثمارات في الأصول الرقمية محفوفة بالمخاطر. يرجى تقييم مخاطر المنتج بعناية وتحملك للمخاطر بناء على ظروفك المالية الخاصة. لمزيد من المعلومات، يرجى الرجوع إلى شروط الاستخدام واخلاء المسؤولية.