Back to Blog

[Не все токены одинаково полезны] Краткий анализ атаки на Paraluni

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

Проект Paraluni подвергся атаке утром 13 марта (по времени UTC +8). Злоумышленник использовал две уязвимости для атаки на протокол. Первая уязвимость — отсутствие проверки переданных токенов, а вторая — классический реентранси (reentrancy). Атакующий совершил несколько транзакций нападения. Ниже мы разберем одну из них 0xf2bba649019ce40a67f0fb74e5e800257d359d9094b6ba6faea14ffa4d3446b1, чтобы проиллюстрировать весь процесс атаки.

Шаг I: добавление liquidity (ликвидности) в paraRouter

Злоумышленник вызвал addLiquidity для пула BTCB-WBNB (индекс = 9), и пул выпустил LP-токен на адрес UBT (токен, созданный атакующим). После этой операции токен UBT владеет LP-токеном пула. Заметим, что BTCB и WBNB были взяты через мгновенный заем (flash loan).

Шаг II: вызов depositByAddLiquidity в MasterChef Атакующий вызвал depositByAddLiquidity, указав _pid равным 9 и используя токены UGT и UBT в качестве параметров. Однако функция не проверяет, равны ли резервные токены пула переданным токенам (UGT и UBT).

Затем функция вызывает depositByAddLiquidityInternal, которая, в свою очередь, вызывает addLiquidity в paraRouter. Эта функция вызывает функцию transferFrom токенов UGT и UBT. Однако эти два токена контролируются злоумышленником. В функции transferFrom токена UBT атакующий вызвал функцию deposit контракта MasterChef, чтобы внести LP-токен, полученный на первом шаге, в контракт MasterChef.

К сожалению, из-за изменения баланса в функции deposit, значение newBalance после addLiquidity оказывается намного больше, чем oldBalance. Таким образом, атакующий получил двойное зачисление в контракте MasterChef.

Шаг III: получение прибыли

В конечном итоге злоумышленник вызвал UBT.withdrawAsset и MasterChef.withdraw, чтобы обменять LP-токены на BTCB и WBNB. Поскольку объем ликвидности оказался больше, чем должен был быть у атакующего, он получил прибыль.

Уроки

Помимо проблемы реентранси, одной из первопричин стало отсутствие проверки переданных токенов. Мы уже наблюдали подобные случаи ранее, например, в инцидентах с Visor и Coin98.

О компании BlockSec

BlockSec — это передовая компания в сфере безопасности блокчейнов, основанная в 2021 году группой всемирно признанных экспертов по безопасности. Компания стремится повысить безопасность и удобство использования развивающегося мира Web3, чтобы способствовать его массовому внедрению. Для этого BlockSec предоставляет услуги аудита безопасности смарт-контрактов и EVM-цепей, платформу Phalcon для разработки систем безопасности и проактивного блокирования угроз, платформу MetaSleuth для отслеживания и расследования транзакций, а также расширение MetaSuites для эффективной работы разработчиков 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
[Не все токены одинаково полезны] Краткий анализ атаки на Paraluni