Back to Blog

Атака на LI.FI: уязвимость кроссчейн-моста? Нет, дело в непроверенном внешнем вызове!

Code Auditing
21 марта 2022 г.
3 min read

Согласно отчету проекта LI.FI и Twitter-аккаунту Дэниела фон Фанге, мы зафиксировали атаку на LI.FI 20 марта 2022 года. Поскольку подробного технического анализа этой уязвимости не представлено, далее мы проанализируем саму атаку. Мы установили, что первопричиной этой атаки является непроверенный внешний вызов (unchecked external call).

Транзакция атаки

Мы начали с транзакции атаки, чтобы проиллюстрировать процесс нападения. На скриншоте ниже показан результат работы нашей системы визуализации транзакций.

Как видно на изображении выше, весь процесс атаки довольно прост: злоумышленники не использовали вредоносные смарт-контракты и не прибегали к мгновенным займам (flashloan). Единственный шаг, который выполнил атакующий, — вызов функции swapAndStartBridgeTokensViaCBridge(0x01c0a31a) в контракте CBridgeFacet, что привело к переводу различных токенов (например, USDC, MATIC, RPL, GNO, USDT, MVI, AUDIO, AAVE, JRT и DAI) от разных отправителей на EOA-адрес, контролируемый атакующим.

Анализ кода

Затем мы углубились в код целевого логического контракта.

Код функции
Код функции
Код функции
Код функции

Согласно приведенному выше коду, swapAndStartBridgeTokensViaCBridge является точкой входа для кроссчейн-транзакции в исходной сети.

Проект LIFI заявляет, что может находить лучшие маршруты для пользователей с помощью системы Smart Routing, которая работает вне сети (off-chain). В частности, веб-интерфейс вычисляет лучший маршрут и кодирует параметры (включая адрес контракта обмена и путь маршрутизации) в параметры функции swapAndStartBridgeTokensViaCBridge.

Очевидно, что проект LIFI не учел, что эта функция может быть вызвана любым аккаунтом в блокчейне, поскольку она не выполняет никаких проверок параметров, таких как «белый список» или допустимое проскальзывание (slippage). Самое серьезное заключается в том, что контракт CBridgeFacet требует от пользователей предварительного одобрения (approve) токенов, что и поставило средства пользователей под угрозу.

Ущерб

В результате атакующий украл средства пользователей LIFI, которые ранее дали одобрение на использование своих токенов контракту CBridgeFacet, вызвав функцию swapAnStartBridgeTokensViaCBridge, которая, в свою очередь, активировала функции transferFrom для различных токенов. Статистика потерь приведена в таблице ниже. Общие убытки составили около 596 тысяч долларов, что практически совпадает со статистикой от проекта LIFI.

Токен Количество Цена
GNO 0.94 310.22
USDC 202,012.28 0.999655
MATIC 3,144.89 1.46
AUDIO 1,202.37 1.10
AAVE 8.99 149.99
RPL 44.86 31.2
MVI 22.95 131.82
USDT 368,745.29 1
DAI 8,421.49 0.999847
JRT 136,805.06 0.03789613

Уроки

LIFI — это агрегатор кроссчейн-мостов, а данный контракт является входом для кроссчейн-переводов. Уязвимость не связана со сложной кроссчейн-логикой, которая становилась причиной предыдущих инцидентов безопасности в данной сфере. Первопричиной этой атаки является непроверенный внешний вызов — одна из 10 самых распространенных проблем в Solidity.

Поскольку проекты DeFi становятся всё более сложными, разработчикам необходимо уделять больше внимания написанию безопасного кода в дополнение к реализации бизнес-логики. Мы настоятельно рекомендуем проектам НЕ развертывать в блокчейне контракты, не прошедшие аудит.

О компании BlockSec

BlockSec — передовая компания в области безопасности блокчейна, основанная в 2021 году группой всемирно признанных экспертов по безопасности. Компания стремится повысить уровень безопасности и удобства использования для развивающегося мира Web3, чтобы способствовать его массовому внедрению. Для этого BlockSec предоставляет услуги аудита безопасности смарт-контрактов и EVM-сетей, платформу Phalcon для безопасной разработки и проактивного предотвращения угроз, платформу MetaSleuth для отслеживания и расследования транзакций, а также расширение MetaDock для эффективной навигации разработчиков Web3 в криптомире.

На сегодняшний день компания обслужила более 300 уважаемых клиентов, таких как MetaMask, Uniswap Foundation, Compound, Forta и PancakeSwap, и получила десятки миллионов долларов США в двух раундах финансирования от выдающихся инвесторов, включая Matrix Partners, Vitalbridge Capital и Fenbushi Capital.

Официальный сайт: https://blocksec.com/

Официальный аккаунт в Twitter: https://twitter.com/BlockSecTeam

Sign up for the latest updates
За пределами безопасного хранения, часть 1: проектирование безопасных процессов проведения платежей и подписания транзакций
Security Insights

За пределами безопасного хранения, часть 1: проектирование безопасных процессов проведения платежей и подписания транзакций

Как несанкционированная операция может получить действительную подпись, если злоумышленник не похитил закрытый ключ? В части 1 материала «За пределами безопасного хранения» на примере инцидентов, в том числе связанных с Bitget, Bybit и Binance, рассматриваются сбои авторизации на этапах подачи платёжных запросов, формирования транзакций, подписания, исполнения и расчётов. На этой основе выводятся принципы проектирования, направленные на предотвращение несанкционированных операций и ограничение потерь, а затем объясняется, как проверки, аудиты, тесты на проникновение и учения могут помочь проверить эти меры защиты.

Потери около 5,57 млн USD: атаки на X100 Freezer и NEM | Еженедельный обзор BlockSec
Security Insights

Потери около 5,57 млн USD: атаки на X100 Freezer и NEM | Еженедельный обзор BlockSec

Этот еженедельный отчёт охватывает два инцидента безопасности в сетях Ethereum и BNB Chain за период 19.10.2026–25.10.2026. В нём рассматриваются захват управления X100 Freezer, профинансированный с помощью флеш-кредита, и ошибка при расчёте налога, затронувшая пул ликвидности токена NEM в сети BNB Chain. Оценочные потери в рамках отчёта составляют в общей сложности около 5,57 млн USD: ~4,75 млн USD по рассматриваемой транзакции X100 и ~820 тыс. USD в результате инцидента с пулом NEM. В эту сумму не входят отдельно опубликованные данные о последующих выводах средств из X100.

Потери на сумму около 3,87 млн USD: взломы Autheo Network и UNCX | Еженедельный обзор BlockSec
Security Insights

Потери на сумму около 3,87 млн USD: взломы Autheo Network и UNCX | Еженедельный обзор BlockSec

В этом еженедельном отчёте рассматриваются 3 инцидента безопасности за период 12.10.2026–18.10.2026. Общий оценочный ущерб составил около 3,87 млн USD. Ущерб Autheo Network от компрометации закрытого ключа составил примерно 1,76 млн USD, Qubic Wallet потерял примерно 1,30 млн USD из-за ненадёжной генерации seed, а ошибка учёта в контрактах Smart Token Vesting V2 сети UNCX Network на Ethereum, BNB Chain, Base и Robinhood Chain привела к ущербу примерно в 807 тыс. USD. В подробном анализе инцидента UNCX объясняется, как некорректный расчёт совокупного количества долей смешивал транши вестинга, созданные при разных соотношениях токенов и долей, и позволял выводить из общих пулов больше положенного.

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit
Атака на LI.FI: уязвимость кроссчейн-моста? Нет, дело в непроверенном внешнем вызове!