Оригинальная статья
Переведено специяльно для xss.pro
Камнями кидать в Jolah Milovski
Согласно отчету проект Даниэля фон Фанге LI.FI подвергся атаке 20 марта 2022 года. Поскольку подробный технический анализ этой уязвимости отсутствует, далее мы анализируем атаку. Мы обнаружили, что основной причиной этой атаки является непроверенный внешний вызов .
Как показано на рисунке выше, весь процесс атаки довольно прост, в нем не используются вредоносные смарт-контракты и не задействован флэш-кредит. Единственный шаг, который выполнил злоумышленник, — это вызов swapAndStartBridgeTokensViaCBridge(0x01c0a31a)
CBridgeFacet контракт , который передает различные токены (например, USDC, MATIC, RPL, GNO, USDT, MVI, AUDIO, AAVE, JRT и DAI) к EOA , контролируемому злоумышленником.
Согласно приведенному выше коду, swapAndStartBridgeTokensViaCBridge является входом межцепочечной передачи в исходной цепочке.
Проект LIFI утверждает, что он может найти "лучший маршрут" для пользователей, названный Smart Routing, который происходит вне цепочки. В частности, внешний сайт рассчитывает оптимальный маршрут и кодирует параметры (включая своп-контракт и путь маршрутизации) в параметры функции swapAndStartBridgeTokensViaCBridge.
Очевидно, что проект LIFI не учитывает, что функция может быть вызвана любыми аккаунтами на блокчейне, поскольку функция не выполняет никаких проверок параметров, таких как белый список и проскальзывание свопа. Наиболее серьезной частью является то, что контракт CBridgeFacet требует от пользователей одобрения токенов, что подвергает риску деньги пользователей.
По итогу
Злоумышленник крадет деньги пользователей LIFI, которые одобрили свои токены для контракта CBridgeFacet, вызывая функцию swapAnStartBridgeTokensViaCBridge, которая затем вызывает функции transferFrom различных токенов. Статистика потерь приведена в таблице ниже. Общие потери составляют около $596K, что практически совпадает со статистикой проекта LIFI.
Переведено специяльно для xss.pro
Камнями кидать в Jolah Milovski
Согласно отчету проект Даниэля фон Фанге LI.FI подвергся атаке 20 марта 2022 года. Поскольку подробный технический анализ этой уязвимости отсутствует, далее мы анализируем атаку. Мы обнаружили, что основной причиной этой атаки является непроверенный внешний вызов .
Транзакция атаки
Мы начали с транзакции атаки, чтобы проиллюстрировать процесс атаки. На следующем снимке экрана показан результат работы нашей системы визуализации транзакций .
Как показано на рисунке выше, весь процесс атаки довольно прост, в нем не используются вредоносные смарт-контракты и не задействован флэш-кредит. Единственный шаг, который выполнил злоумышленник, — это вызов swapAndStartBridgeTokensViaCBridge(0x01c0a31a)
CBridgeFacet контракт , который передает различные токены (например, USDC, MATIC, RPL, GNO, USDT, MVI, AUDIO, AAVE, JRT и DAI) к EOA , контролируемому злоумышленником.
Анализ кода
Углубимся в код логику контракта.
Согласно приведенному выше коду, swapAndStartBridgeTokensViaCBridge является входом межцепочечной передачи в исходной цепочке.
Проект LIFI утверждает, что он может найти "лучший маршрут" для пользователей, названный Smart Routing, который происходит вне цепочки. В частности, внешний сайт рассчитывает оптимальный маршрут и кодирует параметры (включая своп-контракт и путь маршрутизации) в параметры функции swapAndStartBridgeTokensViaCBridge.
Очевидно, что проект LIFI не учитывает, что функция может быть вызвана любыми аккаунтами на блокчейне, поскольку функция не выполняет никаких проверок параметров, таких как белый список и проскальзывание свопа. Наиболее серьезной частью является то, что контракт CBridgeFacet требует от пользователей одобрения токенов, что подвергает риску деньги пользователей.
По итогу
Злоумышленник крадет деньги пользователей LIFI, которые одобрили свои токены для контракта CBridgeFacet, вызывая функцию swapAnStartBridgeTokensViaCBridge, которая затем вызывает функции transferFrom различных токенов. Статистика потерь приведена в таблице ниже. Общие потери составляют около $596K, что практически совпадает со статистикой проекта LIFI.