Атака на токен LULA в сети BNB Smart Chain принесла злоумышленнику около $578 тыс. О случившемся почти одновременно сообщили несколько X-инвестигейторов.
LULA торговался в пуле ликвидности на децентрализованной бирже PancakeSwap. Проблема оказалась в коде токена.
Хотите еще эксклюзивных новостей и аналитики? Подписывайтесь на наш телеграм-канал, обсуждайте новости и делитесь мнениями о последних событиях рынка в чате!
Как сработала манипуляция резервами
В основе атаки лежала функция recycle(). Она давала контракту Rental два права:
- забирать LULA напрямую из пары PancakeSwap V2;
- вызывать функцию sync(), которая приводила учетные резервы пары в соответствие с новыми, уже искаженными балансами.
Пул на DEX удобно представить как весы с двумя чашами: на одной чаше USDT, на другой — LULA. Цена определяется соотношением объемов. Обычный трейдер может лишь перекладывать монеты с чаши на чашу через обмен. Функция recycle() же позволяла снимать токены с одной чаши со стороны, а sync() заставлял весы признать новое положение честным.
Последовательность действий BlockSec Phalcon описывает так:
- крупный обмен USDT на LULA, который раздул резерв USDT в паре;
- многократные вызовы recycle(), сокращавшие резерв LULA;
- обратный обмен небольшого объема LULA, который осушил ликвидность пула.
Смысл маневра в том, что чем меньше токенов остается на одной чаше весов, тем дороже становится каждый из них. Искусственно сжав объем LULA в паре, злоумышленник обменял малое количество токенов по фиктивно завышенному курсу.
Подготовка за 12 дней
Атака не была спонтанной. По данным CertiK и CecuroAlert, за 12 дней до эксплойта злоумышленник развернул вспомогательные контракты, чтобы накопить реферальные и командные вознаграждения. Заготовленное право на выплаты стало входной точкой: связка claimReward() → recycle() позволяла максимизировать дефляционный эффект, то есть сжатие количества токенов в обороте.
Для основного этапа использовался флеш-займ примерно на $237 млн. Флеш-заем работает как деньги, взятые на несколько секунд под честное слово: заемщик обязан вернуть сумму внутри той же транзакции, иначе она целиком отменяется. Собственный капитал для этого не нужен, поэтому такой инструмент часто применяют для разгона манипуляций с ценой. Заемные средства пошли на вывод LULA из пула на DEX, что усилило эффект от вызовов recycle().









