Ошибка вычислений позволила взломать Truebit на 8535 ETH

By: WEEX|13.01.2026 09:00:06
0
Поделиться
copy
Оценить в GoogleОценить в Google
Исходный заголовок: "Truebit Протокол 26,44 млн $ Анализ уязвимости контракта после взлома"
Исходный источник: ExVul Security

08.01.2026 протокол Truebit подвергся взлому, в результате которого было потеряно 8,535.36 ETH (примерно 26,44 млн $). Официальное объявление протокола Truebit появилось рано на следующий день. Команда ExVul Security провела подробный анализ уязвимости, использованной при атаке. Ниже представлены его результаты:

Ход атаки

Адрес злоумышленника:

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 уязвимости, связанные с переполнением, уже устранены. Эту атаку следует рассматривать как пример того, как хакер использует ИИ для автоматического сканирования работающих, но устаревших протоколов DeFi с целью выявления уязвимостей (в том числе в недавних атаках на Balancer и yETH). Мы полагаем, что в ближайшем будущем такие атаки с применением ИИ на устаревшие протоколы DeFi станут более распространенными. Поэтому мы рекомендуем проектам проводить новые аудиты безопасности кода смарт-контрактов. При обнаружении уязвимостей следует своевременно обновить контракт или перевести активы, вести мониторинг блокчейна, оперативно выявлять аномалии и минимизировать потери.

Эта статья подготовлена сторонним автором и не отражает точку зрения BlockBeats.

Цена --

--
--
--

Этот контент предоставляется исключительно в общих информационных целях и не является финансовым, инвестиционным, юридическим или налоговым советом. Любые мероприятия, вознаграждения, онлайн-акции или связанная с ними информация, упомянутые в настоящем документе, не должны рассматриваться как рекомендация, приглашение к покупке, продаже, торговле или иной сделке с какими-либо криптоактивами. Криптоактивы очень волатильны и могут привести к убыткам. Доступность услуг, продуктов WEEX и связанных с ними событий может варьироваться в зависимости от региона. Вы несете ответственность за обеспечение того, чтобы ваше участие соответствовало применимым местным законам и нормативным актам.

Вам также может понравиться

iconiconiconiconiconiconiconiconiconicon
Служба поддержки:@weikecs
Деловое сотрудничество:@weikecs
Количественная торговля и ММ:[email protected]
VIP-программа:[email protected]