الخلفية
في الأول من ديسمبر عام 2025، تعرض بروتوكول Yearn لتجميع العائدات اللامركزي الراسخ للهجوم، مما أدى إلى خسارة تقدر بحوالي 9 ملايين دولار.
فيما يلي تحليل مفصل لهذا الهجوم من قبل فريق أمان SlowMist: يكمن السبب الجذري في حقيقة أن منطق الوظيفة (_calc_supply) المُستخدم لحساب المعروض في عقد تجمع مبادلة السيولة المرجحة yETH التابع لشركة Yearn، استخدم عملية حسابية غير آمنة، مما سمح بحدوث تجاوزات وتقريب أثناء الحساب. أدى ذلك إلى انحراف كبير عند حساب حاصل ضرب المعروض الجديد والرصيد الافتراضي، مما سمح للمهاجمين في النهاية بالتلاعب بالسيولة إلى قيمة محددة وسك عدد غير متوقع من رموز LP لتحقيق الربح. yETH هو تجمع صانع سوق آلي (AMM) يتكون من مشتقات إيداع سيولة الإيثيريوم (LSTs). يمكن للمستخدمين إيداع مشتقات إيداع سيولة الإيثيريوم (LSTs) في التجمع لتوفير السيولة واستلام رموز yETH. لكل أصل من أصول LST مزود سعر صرف مُقابل. يُسمى رصيد الأصول في تجمع السيولة مضروبًا في سعر الفائدة "الرصيد الافتراضي" (vb)، ويُحسب على النحو التالي: يتتبع العقد المتغير D، الذي يمثل إجمالي معروض LP في تجمع السيولة في ظل التوازن المثالي. أي زيادة أو نقصان في قيمة D سيؤدي إلى إصدار أو تدمير كمية مساوية من رموز LP (yETH). تضمن هذه الآلية تثبيتًا بنسبة 1:1، محسوبًا كما يلي: (صورة للصورة مع σ وπ) حيث σ هو مجموع الأرصدة الافتراضية لجميع الأصول (vb_sum)، وπ هو حاصل ضرب الأرصدة الافتراضية (vb_prod). يتم تحديث حاصل ضرب الأرصدة الافتراضية (vb_prod) بشكل متزامن عند حساب العرض الجديد، محسوبًا كما يلي: [صورة الهجوم/التحليل] معاملة الهجوم: 0x53fe7ef190c34d810c50fb66f0fc65a1ceedc10309cf4b4013d64042a0331156
1. قام المهاجم أولاً باقتراض كمية كبيرة من أصول LST من خلال قروض سريعة، بما في ذلك (wstETH، rETH، WETH، 0xa35b_ETHx، rETH، wstETH، و cbETH).

لاحظ أنه تم تحويل جزء من WETH إلى ETH وإيداعه في Tornado Cash. بعد ذلك، أدت عمليات السحب من تورنادو كاش إلى تفعيل دالة التراجع في عقد الهجوم، مما أدى إلى تنفيذ الهجوم:


في هذه المرحلة، تم تحديث قيم إجمالي ناتج الرصيد الافتراضي (vb_prod) وإجمالي مجموع الرصيد الافتراضي (vb_sum) وإجمالي العرض إلى القيم التالية: vb_prod ≈ 4.34e19، vb_sum ≈ 1.0926e22، supply ≈ 9.98e21. ... 5. ثم قام المهاجم باسترداد جميع رموز LP التي تم سكها في حقن السيولة السابقتين باستخدام وظيفة `remove_liquidity`. نظرًا لأن هذا الجزء من LP قد تم سكه خلال الخطوة الثالثة لتضخيم العرض والتلاعب به، وقد حدث الاسترداد خلال الخطوة الرابعة لاستعادة العرض وتقليله، فقد تمكن المهاجم من استرداد المزيد من الرموز مما هو متوقع عادةً، مما أدى إلى تقليل رصيد الأصول والعرض في المجمع. استخدم المهاجم نفس الطريقة لإجراء دورة من التلاعب مرة أخرى، مما أدى إلى تقليل عرض LP والرصيد الافتراضي تدريجيًا. لاحظ استدعاء وظيفة `rebase` لعقد `OETHVaultCore`. والغرض منها هو تحديث سعر صرف `wOETH`، مما يسمح لوظيفة `update_rates` باسترداد السعر الجديد واستعادة قيم منتج المجموع الافتراضي والعرض. بعد التلاعب النهائي، يمكن للمهاجم إفراغ جميع الأصول في المجمع مباشرةً بعد إزالة السيولة، مما يجعل منتج الرصيد الافتراضي (vb_prod) ومجموع الرصيد الافتراضي (vb_sum) والعرض الإجمالي جميعها صفرًا. ٦. بعد إفراغ المجمع بالكامل، يبدأ المهاجم بإضافة سيولة الغبار إليه: بما أن أسعار الفائدة على أصول LSD الثمانية الأساسية متقاربة... في 1e18، بعد إضافة عدد رموز الغبار، سيكون الرصيد الافتراضي لكل أصل مساويًا مباشرةً لعدد الرموز. عندما يكون العرض صفرًا، تستدعي إضافة السيولة الدالة الداخلية `_calc_vb_prod_sum` لإعادة حساب إجمالي ناتج الرصيد الافتراضي (vb_prod)، ومجموع الأرصدة الافتراضية، وإجمالي العرض الحالي: تُمرر هذه القيم بعد ذلك إلى الدالة `_calc_supply` لحساب العرض الجديد، أي كمية LP التي حصل عليها المهاجم. في إحدى تكرارات دالة `_calc_supply`، تجاوزت قيمة `supply` الحد المسموح به بسبب `unsafe_mul`، مما أدى إلى قيمة `supply` محسوبة بحجم تقريبي (2.354e56)، والتي بدورها تُصدر عددًا مماثلًا من رموز yETH للمهاجم. وأخيرًا، يستخدم المهاجم أداة AMM لبيع وتبادل yETH مباشرةً، ثم يُسدد القرض السريع ويحقق أرباحًا. ووفقًا لتحليل MistTrack، وهي أداة تتبع على السلسلة ومكافحة غسيل الأموال، فقد حقق المهاجمون أرباحًا تُقدر بحوالي 9 ملايين دولار في هذه الحادثة، حيث جاءت الأموال الأولية من مبلغ صغير من ETH حُوِّل من Railgun. بعد شن الهجوم، حوّل المهاجم أولاً 1100 إيثريوم إلى عملة تورنادو كاش، وسُحب منها 100 إيثريوم لاستخدامها لاحقًا: [صورة لتورنادو كاش]. ثم حُوِّلت الأرباح البالغة 6 ملايين دولار (بما في ذلك 128 إيثريوم، و48.96 سي بي إي تي إتش، و203.55 إيثريوم، و742.63 فركس، و857.48 بيكسل، و167.67 ست) إلى العنوان 0xa80d3f2022f6bfd0b260bf16d72cad025440c822). تجدر الإشارة إلى أن ييرن استردت لاحقًا 2.4 مليون دولار بتدمير عملة بي إكس إي تي إتش التي كان المخترقون يحتفظون بها. أُعيدت عملة بي إكس إي تي إتش إلى محفظة ريداكتد كارتل متعددة التوقيعات.

(https://etherscan.io/tx/0x0e83bb95bb9d05fb81213b2fad11c01ea671796752e8770b09935f7052691c35)
تم وضع علامة على MistTrackذات صلة العناوين، وسيواصلون مراقبة تحركات الأموال.
الملخصالملخص
يكمن جوهر هذا الهجوم في استغلال المهاجم لعملية حسابية غير آمنة في منطق تنفيذ عقد تجمع تبادل العملات المستقرة المرجحة yETH التابع لبروتوكول Yearn لحساب عرض مزود السيولة عند إضافة السيولة، مما يؤدي إلى حدوث عيوب في تجاوز الحد الأقصى والتقريب. ومن خلال بناء قيم افتراضية محددة للرصيد والعرض، ضخّم المهاجم الخطأ الناتج عن هذا العيب، مما سمح له بسك كمية هائلة من رموز مزود السيولة لتحقيق الربح. يوصي فريق أمن SlowMist فرق المشاريع والمدققين بتعزيز اختبارات التغطية للسيناريوهات المتطرفة والظروف الحدودية عند مواجهة مواقف مماثلة. كما ينبغي عليهم استخدام عمليات حسابية آمنة وإجراء فحوصات عند حساب المتغيرات الأساسية لمنع الثغرات الأمنية الخطيرة، مثل الفيضانات، من التأثير على أمان البروتوكول.