باگ محاسباتی که امکان هک Truebit و سرقت 8535 ETH را فراهم کرد

By: WEEX|13/01/2026 09:00:06
0
اشتراک‌گذاری
copy
امتیازدهی ما در گوگلامتیازدهی ما در گوگل
عنوان اصلی: «تحلیل آسیب‌پذیری قرارداد هک Truebit پروتکل ⁦$26.44M⁩»
منبع اصلی: ExVul Security

در ⁦08/01/2026⁩، پروتکل Truebit هک شد و در نتیجه 8,535.36 ETH (حدود ⁦$26.44M⁩) از دست رفت. اطلاعیه رسمی پروتکل Truebit اوایل روز بعد منتشر شد. تیم امنیتی ExVul تحلیل مفصلی از آسیب‌پذیری این حمله انجام داد که نتایج آن به شرح زیر است:

روند حمله

آدرس مهاجم:

0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50

هش تراکنش حمله:

0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014

مهاجم حمله را با تکرار 4باره فراخوانی‌های تراکنش‌های getPurchasePrice→0xa0296215→0xc471b10b انجام داد. برای نمونه، تحلیل بر نخستین چرخه تمرکز دارد.

1. مهاجم ابتدا تابع getPurchasePrice(240442509453545333947284131) را فراخوانی کرد که مقدار 0 را برگرداند.

باگ محاسباتی که امکان هک Truebit و سرقت 8535 ETH را فراهم کرد

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 است تا v12 + v9 سرریز کند و به مقداری بسیار کوچک برسد؛ در نهایت، (v12 + v9) / v6 == 0 می‌شود.

جمع‌بندی

دلیل اصلی حمله این بار به پروتکل Truebit، وجود یک باگ شدید سرریز عدد صحیح در منطق محاسبه قیمت خرید توکن آن است. از آنجا که قرارداد از نسخه Solidity ^0.6.10 استفاده می‌کند و عملیات حسابی مهم را به‌صورت ایمن بررسی نمی‌کند، در نهایت 8,535.36 ETH از دست رفت. نسخه‌های جدیدتر Solidity خود تا حدی آسیب‌پذیری‌های سرریز را کاهش داده‌اند. باید این حمله را نمونه‌ای از استفاده هکر از هوش مصنوعی برای اسکن خودکار برخی پروتکل‌های قدیمی اما فعال دیفای و یافتن آسیب‌پذیری‌هایشان دانست (از جمله حمله‌های اخیر به Balancer و yETH). باور داریم که چنین حمله‌هایی مبتنی بر هوش مصنوعی به پروتکل‌های قدیمی دیفای در آینده نزدیک رایج‌تر خواهند شد. بنابراین، توصیه می‌کنیم پروژه‌ها ممیزی‌های امنیتی جدیدی برای کد قراردادهای خود انجام دهند. در صورت یافتن آسیب‌پذیری، باید قرارداد را به‌سرعت ارتقا دهند یا دارایی‌ها را منتقل کنند، نظارت آن‌چین را حفظ کنند، ناهنجاری‌ها را سریع تشخیص دهند و زیان‌ها را به حداقل برسانند.

این مقاله محتوایی ارسالی است و دیدگاه‌های BlockBeats را منعکس نمی‌کند.

قیمت --

--
--
--

این محتوا صرفاً برای اطلاع‌رسانی عمومی ارائه شده است و به‌منزله مشاوره مالی، سرمایه‌گذاری، حقوقی یا مالیاتی تلقی نمی‌شود. هرگونه رویداد، جایزه، کمپین آنلاین یا اطلاعات مرتبط که در اینجا ذکر شده است، نباید به‌عنوان توصیه، ترغیب یا دعوت به خرید، فروش، معامله یا هرگونه دادوستد دیگر دارایی‌های رمزارزی تلقی شود. دارایی‌های رمزارزی از نوسان بالایی برخوردار هستند و ممکن است منجر به زیان شوند. دسترسی به خدمات، محصولات و رویدادهای مرتبط با WEEX ممکن است بسته به منطقه جغرافیایی متفاوت باشد. اطمینان از اینکه استفاده شما از این خدمات با قوانین و مقررات محلی مطابقت دارد، بر عهده خود شماست.

ممکن است شما نیز علاقه‌مند باشید

شبکه ناشناس Zcash در نوامبر سه برابر سریع‌تر می‌شود. این چه معنایی برای بلاک‌چین دارد؟

اعلام تعطیلی Abstract: با وجود برند و کاربران، چرا یک زنجیره را نمی‌توان نگهداری کرد؟

400 میلیون کیف پول، 400 هزار کاربر، 144 برنامه، Abstract هنوز نتوانسته است یک تجارت L2 را راه‌اندازی کند.

عرضه Open USD به 666 میلیون دلار رسید، 10 کیف پول 74% را در اختیار دارند

مطالعه کیف پول Open USD در هفته اول 666.3 میلیون دلار عرضه در تاریخ 5 اکتبر را از موجودی‌های مرحله‌ای، معاملات DEX و انتقال‌های هزینه‌ای در Tempo جدا می‌کند.

بانک مرکزی روسیه، VTB و Sberbank را در فهرست سپرده‌گذاری‌های دیجیتال قرار داد

سپرده‌گذاری‌های دیجیتال در فهرست منتشر شده توسط بانک روسیه ظاهر شدند: نهاد نظارتی پنج سازمان را در آن گنجانده است که از جمله آنها VTB و Sberbank هستند. به‌طور جداگانه، بانک مرکزی فهرستی از شرکت‌هایی را که به تبادل ارزهای دیجیتال می‌پردازند، تشکیل داده است. در فهرست سپرده‌گذاری‌های دیجیتال، VTB، Sber...

حملات وام فوری ۱.۲ میلیارد دلار از دیفای بین سال‌های ۲۰۲۰ تا ۲۰۲۴ را خالی کردند: مطالعه

چرا ارز دیجیتال iExec RLC (RLC) امروز رشد می‌کند؟ تقاضا برای حریم خصوصی، مهاجرت چندزنجیره‌ای و آزمون حجم معاملات

چرا iExec RLC امروز رشد می‌کند؟ حجم معاملات RLC، کاربرد رایانش محرمانه، عرضه توکن، مهاجرت از طریق بریج و شواهد پذیرش را که باید زیر نظر بگیرید بررسی کنید.

...

جدیدترین مقالات

آخرین لیست سکه ها در WEEX

iconiconiconiconiconiconiconicon
پشتیبانی مشتری:@weikecs
همکاری تجاری:@weikecs
معاملات کمّی و بازارسازی:[email protected]
برنامه VIP:[email protected]