Эксперты по безопасности из SlowMist рассказали подробности атаки на протокол Balancer
Согласно данным исследователей SlowMist, 22 августа 2023 года разработчики Balancer объявили об обнаружении серьезной уязвимости, затрагивающей несколько пулов V2 Boost. Это касалось 1,4% общего значения заблокированных средств (TVL). Некоторые из них были временно приостановлены, а пользователям предложено вывести свои активы поставщиков ликвидности (LP).
Позднее система MistEye обнаружила подозрительные транзакции, использующие уязвимость Balancer. Приостановка работы пулов оказалась неэффективной и некоторые из них оставались уязвимыми для атак. Исследователи рассказали, что причина крылась в функции BatchSwap. Она обеспечивает атомарные обмены между различными пулами, соединяя выход одного с входом другого (tokenIn и tokenOut) и обменивая USDC на токены BPT.
Начиная с 2015 года миллионы стартапов использовали первичное предложение монет для сбора денег,...
Централизованная система хранения данных уязвима к хакерским атакам. Ее вторая проблема —...
В мире более 7800 криптовалют. Они существуют внутри децентрализованных распределенных сетей —...
При этом фактическая передача токенов не происходит. По словам специалистов SlowMist, вместо этого объемы обмена подтверждаются путем записи сумм входящих и исходящих токенов. Таким образом при процессе пакетного обмена были обнаружены 2 уязвимости безопасности.
Первая заключалась в том, что злоумышленники в одностороннем порядке добавляли основные токены, посредством округления их стоимости в меньшую сторону. Тем самым они получили возможность манипулировать курсом обмена внутри соответствующего составного пула.
Вторая проблема: виртуальное предложение рассчитывается путем вычитания баланса пула из токенов BPT. Если функция GiveIn — это токены BPT, то последующая поставка будет вычтена на конкретную сумму. Злоумышленникам нужно использовать BPT в качестве GiveIn и сманипулировать его предложением до 0, а затем выполнить обратный обмен. При этом BPT сработает как функция GiveOut. На этом этапе алгоритм выполнит транзакцию с соотношением почти 1 к 1, что ниже текущего курса линейного пула.
В итоге 1-я уязвимость увеличила обменный курс при конвертации. При этом 2-й баг, во время обратного обмена, снизил его. Воспользовавшись обеими ошибками злоумышленник получил выгоду и вышел из протокола.