الخلفية
في 22 مايو، وفقًا لأخبار المجتمع، يُشتبه في تعرض Cetus، مزود السيولة في نظام SUI البيئي، للهجوم. انخفض عمق مجمع السيولة بشكل كبير، وانخفضت أزواج تداول الرموز المتعددة على Cetus. وتجاوزت قيمة الخسائر المتوقعة 230 مليون دولار أميركي. لاحقًا، أصدرت شركة Cetus بيانًا جاء فيه: "تم رصد حادثة في بروتوكولنا. ولأسباب أمنية، تم تعليق العقد الذكي مؤقتًا. حاليًا، يُجري الفريق تحقيقًا في الحادثة. وسنصدر بيانًا آخر حول التحقيق قريبًا". بعد الحادث، تدخل فريق أمن SlowMist في التحليل وأصدر تذكيرًا أمنيًا. وفيما يلي تحليل مفصل لأساليب الهجوم وتحويلات الأموال.
(https://x.com/CetusProtocol/status/1925515662346404024)
معلومات ذات صلة
إحدى معاملات الهجوم:
https://suiscan.xyz/mainnet/tx/DVMG3B2kocLEnVMDuQzTYRgjwuuFSfciawPvXXheB3x
عنوان المهاجم:
0xe28b50cef1d633ea43d3296a3f6b67ff0312a5f1a99f0af753c85b8b5de8ff06
(مخطط تسلسل الهجوم)
![]()
ضع علامة على الحد الأدنى: 300,000 (السعر: 60,257,519,765,924,248,467,716,150)
ضع علامة على الحد الأقصى: 300,200 (السعر: 60,863,087,478,126,617,965,993,239)
عرض نطاق السعر: 1.00496621% فقط

عندما يحسب النظام كمية haSUI المطلوبة لإضافة هذه السيولة الضخمة:

المشكلة هنا هي أن تطبيق دالة check_shlw يعاني من خلل كبير. في الواقع، أي قيمة إدخال أقل من 0xffffffffffffffff << 192 ستتجاوز فحص الفائض. ومع ذلك، عند إزاحة هذه القيم إلى اليسار بمقدار 64 بت، تتجاوز النتيجة نطاق تمثيل u256، ويتم اقتطاع البيانات عالية الترتيب، مما ينتج عنه نتيجة أصغر بكثير من القيمة النظرية. هذا يؤدي إلى تقليل النظام من تقدير كمية واجهة المستخدم الرسومية (haSUI) المطلوبة في الحسابات اللاحقة.

قناع الخطأ: 0xffffffffffffffffff << 192 = قيمة كبيرة جدًا (حوالي 2^256-2^192)
جميع المدخلات تقريبًا أصغر من هذا القناع، مما يتجاوز اكتشاف الفائض
المشكلة الحقيقية: عندما يكون n >= 2^192 ، فإن n << 64 سيتجاوز نطاق u256 ويكون تم اقتطاعه
قام المهاجم ببناء قيمة وسيطة liquidity * sqrt_price_diff = 6277101735386680763835789423207666908085499738337898853712:
أصغر من قناع الخطأ، متجاوزًا اكتشاف الفائض
ولكن بعد إزاحته إلى اليسار بمقدار 64 بت، سيتجاوز الحد الأقصى للقيمة u256، مما يؤدي إلى اقتطاع الجزء الزائد
النتيجة النهائية للحساب أقل تقريبًا من 1، ولكن لأنه تم تقريبه لأعلى، فإن الاقتباس يساوي 1

4. وأخيرًا، قام المهاجم بإزالة السيولة وحصل على دخل رمزي ضخم:
الإزالة الأولى: 10,024,321.28 haSUI
الإزالة الثانية: تم الحصول عليها 1 haSUI
الإزالة الثالثة: تم الحصول على 10,024,321.28 haSUI
![]()
5. قام المهاجم بإعادة القرض السريع، مع صافي ربح يبلغ حوالي 10،024،321.28 hSUI و 5،765،124.79 SUI، وتم الانتهاء من الهجوم.
وضع إصلاح فريق المشروع
بعد الهجوم، أصدرت Cetus تصحيحًا للإصلاح. للحصول على رمز الإصلاح المحدد، يرجى الرجوع إلى: https://github.com/CetusProtocol/integer-mate/pull/7/files#diff-c04eb6ebebbabb80342cd953bc63925e1c1cdc7ae1fb572f4aad240288a69409.
دالة checked_shlw التي تم إصلاحها هي كما يلي:

تعليمات الإصلاح:
صحح القناع غير الصحيح 0xffffffffffffffff << 192 إلى الحد الصحيح 1 << 192
صحح شرط الحكم من n > قناع إلى n >= mask
تأكد من أنه عندما قد يتسبب تحويل 64 بت إلى اليسار في حدوث تجاوز فيض، يمكن اكتشاف علم تجاوز الفائض وإعادته بشكل صحيح
تحليل MistTrack
وفقًا للتحليل، حقق المهاجم 0xe28b50cef1d633ea43d3296a3f6b67ff0312a5f1a99f0af753c85b8b5de8ff06 ربحًا قدره 230 مليون دولار أمريكي تقريبًا، بما في ذلك SUI وvSUI وUSDC وأصول أخرى.
![]()
وجدنا أن المهاجم جهز رسوم الغاز قبل يومين، ثم حاول الهجوم قبل الهجوم، لكنه فشل:
وجدنا أن المهاجم جهز رسوم الغاز قبل يومين، ثم حاول الهجوم قبل الهجوم، لكنه فشل:
وجدنا أن المهاجم جهز رسوم الغاز قبل يومين، ثم حاول الهجوم قبل الهجوم، لكنه فشل:
وجدنا أن المهاجم جهز رسوم الغاز قبل يومين، ثم حاول الهجوم قبل الهجوم، لكنه فشل:
style="text-align:center">![]()
من بينها، 5.2341 WBNB عبر السلسلة إلى عنوان BSC 0x89012a55cd6b88e407c9d4ae9b3425f55924919b:
سيقوم المهاجم أيضًا 24,022,896 SUI نقل إلى العنوان الجديد 0xcd8962dad278d8b50fa0f9eb0186bfa4cbdecc6d59377214c88d0286a0ac9562، لم يتم النقل بعد:
لحسن الحظ، ووفقًا لشركة Cetus، وبالتعاون مع مؤسسة SUI وأعضاء آخرين في النظام البيئي، تم استرداد الأموال المسروقة البالغة 162 مليون دولار أمريكي من SUI تم التجميد بنجاح.
(https://x.com/CetusProtocol/status/1925567348586815622)
بعد ذلك، نستخدم أداة مكافحة غسل الأموال والتتبع على السلسلة MistTrack لتحليل العنوان 0x89012a55cd6b88e407c9d4ae9b3425f55924919b على آلة EVM التي تستقبل الأموال عبر السلسلة.
استقبل هذا العنوان 5.2319 BNB على BSC ولم يُحوّلها بعد:
استقبل هذا العنوان 3000 على إيثريوم USDT، و40.88 مليون USDC، و1771 SOL، و8130.4 الإيثيريوم.
من بينها، يتم تبادل USDT وUSDC وSOL مقابل الإيثيريوم من خلال مبادلة coW ومبادلة ParaSwap، إلخ.
بعد ذلك، سيتم عرض العنوان انقل 20,000 ETH إلى العنوان 0x0251536bfcf144b88e1afa8fe60184ffdb4caf16، لم يتم التحويل بعد:
الرصيد الحالي لهذا العنوان على الإيثيريوم هو 3,244 إيثيريوم:
أضاف MistTrack العناوين ذات الصلة المذكورة أعلاه إلى مكتبة العناوين الضارة. وفي الوقت نفسه، سنواصل مراقبة رصيد العناوين.