За прошедшую неделю (16.03.2026 – 22.03.2026) компания BlockSec зафиксировала и проанализировала семь инцидентов со взломами, суммарный предполагаемый ущерб от которых составил ~82,7 млн долларов США. В таблице ниже представлены краткие сведения об этих инцидентах, а в следующих подразделах приведен подробный анализ каждого случая.
| Дата | Инцидент | Тип | Оценочный ущерб |
|---|---|---|---|
| 2026/03/15* | Инцидент Venus | Атака через донат и манипуляция рынком | ~$2.15M |
| 2026/03/17 | Инцидент dTRINITY | Потеря точности вычислений | ~$257K |
| 2026/03/17 | Инцидент Fun.xyz | Проблема контроля доступа | ~$85K |
| 2026/03/18 | Инцидент Keom | Ошибка бизнес-логики | ~$35K |
| 2026/03/18 | Инцидент ShiMama | Проблема контроля доступа | ~$35K |
| 2026/03/19 | Инцидент BlindBox | Ошибка бизнес-логики | ~$99K |
| 2026/03/22 | Инцидент Resolv | Компрометация приватного ключа | ~$80M |
*Инцидент с Venus не был включен в отчет на прошлой неделе и добавлен здесь для полноты картины.
1. Инцидент Venus
Краткое резюме
15 марта 2026 года рынок THE (Thena) протокола Venus в сети BNB Chain подвергся атаке через донат в сочетании с манипуляцией рынком, что привело к возникновению «плохого долга» на сумму около 2,15 млн долларов. Лимит предложения рынка THE применялся только к пути минтинга, в то время как прямые донаты токенов в пул по-прежнему увеличивали показатель cash и завышали exchangeRate (обменный курс). Затем злоумышленник использовал эту завышенную стоимость обеспечения для заимствования ликвидных активов и приобретения дополнительных THE, одновременно искусственно завышая рыночную цену токена THE. В конечном итоге после принудительной ликвидации позиции протокол остался с «плохим долгом».
Предыстория
Venus — это протокол кредитования, основанный на форке Compound V2. На рынке THE пользователи вносят THE и получают токены vTHE. exchangeRate определяет, какому количеству базовых активов рынка соответствует каждый vTHE; основная формула выглядит так:
exchangeRate = (cash + borrows - reserves) / totalSupply
Здесь cash — это баланс базового актива на рынке, borrows — общая сумма непогашенного долга, reserves — резервы, принадлежащие протоколу, а totalSupply — общее предложение vTHE. На рынке THE также установлен лимит предложения, предназначенный для ограничения общего объема обеспечения.
Анализ уязвимости
Этот инцидент связан с двумя взаимодополняющими векторами атаки на контракт рынка vTHE (0x86e0...739f).
Атака через донат
Протокол определяет cash напрямую из баланса токенов контракта, что делает его уязвимым для атак через донат. Любая прямая передача THE в контракт vTHE увеличивает cash, а следовательно, и exchangeRate. Злоумышленник использовал это, чтобы завысить exchangeRate примерно в 3,81 раза, увеличив стоимость обеспечения своей существующей позиции vTHE.
Манипуляция рынком
Токен THE обладал низкой ончейн-ликвидностью, что делало его спотовую цену уязвимой для манипуляций через относительно небольшое давление покупателей. Оракул протокола спроектирован так, чтобы отклонять цены, которые слишком сильно отклоняются от эталонных значений; он корректно отклонял экстремальные цены в течение примерно 37 минут во время атаки. Однако устойчивое давление покупателей в конечном итоге подтолкнуло цену THE примерно до 0,51 доллара, что почти вдвое превышало пред-атаковую цену, и оракул в конечном итоге принял это значение.

Эти два вектора усиливали друг друга. Завышенный exchangeRate после атаки через донат увеличил стоимость обеспечения каждой единицы vTHE, а манипулируемая цена токена THE еще больше повысила лимит заимствования. Вместе они позволили злоумышленнику накопить заимствования на сумму около 14,9 млн долларов под позицию, которая в 3,67 раза превышала лимит предложения.
Анализ атаки
Следующий анализ основан на примере транзакции атаки 0xce6e3e...1f5fb0e.
-
Шаг 1: Кошелек, связанный со злоумышленником, получил 7 447
ETHчерез 77 транзакций, связанных с TornadoCash, в течение примерно девяти месяцев. ЭтиETHбыли внесены в Aave, и было взято около 9,92 млн долларов в стейблкоинах для создания позицииvTHEобъемом около 12,2 млнTHE(примерно 84% от лимита предложения 14,5 млнTHE). -
Шаг 2: В первой транзакции атаки шесть адресов перевели около 36 млн
THEнапрямую в контракт рынка vTHE. Контракт атаки также занял 1,58 млнUSDC, внес их обратно, затем занял около 4,6 млнTHEи перевел их напрямую в vTHE. Это увеличилоexchangeRateпримерно в 3,81 раза.

- Шаг 3: В последующих транзакциях злоумышленник заимствовал ликвидные активы, включая
CAKE,BNB,BTCBиUSDC. Злоумышленник продолжал покупатьTHEна заемные активы и донатить большеTHEв vTHE, создавая цикл, который увеличивал как заемную мощность позиции, так и рыночную цену токенаTHE.

-
Шаг 4: Цена токена
THEвыросла примерно с 0,2 доллара, причем источник цены Binance кратковременно приближался к 4 долларам. Оракул протокола отклонял экстремальные цены в течение примерно 37 минут, прежде чем в конечном итоге принял цену около 0,51 доллара. -
Шаг 5: К 20:42 UTC+8 позиция злоумышленника достигла около 53,2 млн
THE, что примерно в 3,67 раза превышает лимит предложения, с общим объемом заимствований около 14,9 млн долларов. -
Шаг 6: Затем позиция попала под крупные ликвидации. Около 42 млн
THEобеспечения были ликвидированы в ходе 8 048 транзакций ликвидации с 254 адресов ликвидаторов. Поскольку продажи продолжались, ценаTHEупала примерно до 0,22 доллара. Поступления от ликвидации не смогли покрыть весь долг, оставив Venus с чистым «плохим долгом» около 2,15 млн долларов.
Заключение
Инцидент не выявил новых уязвимостей. Он наглядно продемонстрировал, как хорошо известный вектор атаки, выполненный методично, может перегрузить стек рисков протокола, если каждый уровень предполагает, что остальные сработают корректно. Сигналы опасности были видны в ончейне в течение нескольких месяцев, однако разрыв между обнаружением и вмешательством так и не был устранен. Основной урок для других протоколов кредитования — необходимость устранения этого разрыва за счет внедрения риск-параметров, чувствительных к ликвидности, автоматических предохранителей (circuit breakers) и мониторинга на уровне позиций.
Подробный анализ доступен в нашей статье [1].
Ссылки
2. Инцидент dTRINITY
Краткое резюме
17 марта 2026 года протокол dTRINITY, являющийся форком Aave V3 на Ethereum, подвергся эксплойту через рынок dLEND, что привело к убыткам на сумму около 257,3 тысяч долларов. Первопричиной стала уязвимость «пустого рынка», присущая форкам Aave V3. Когда резерв хранит околонулевую ликвидность, многократное начисление премий за флэш-займы доводит liquidityIndex до экстремальных значений. После искажения учета резервов злоумышленник использовал потерю точности при внесении и выводе средств, чтобы завысить стоимость обеспечения, занять dUSD и вернуть внесенный cbBTC с чистой прибылью.
Предыстория
dTRINITY включает в себя стейблкоин dUSD и dLEND — рынок кредитования, созданный на базе Aave V3. В основном контракте L2Pool (0xfda3...e19e84) каждый актив имеет свой собственный резерв, а учет резервов основан на масштабированных балансах и liquidityIndex (индексе ликвидности). Текущий баланс пользователя вычисляется как масштабированный баланс, умноженный на нормализованный доход резерва.
Премии за флэш-займы добавляются к учету резервов через cumulateToLiquidityIndex(), где:
nextLiquidityIndex = ((amount / totalLiquidity) + 1) * reserve.liquidityIndex
Когда totalLiquidity становится экстремально малым, каждое начисление премии может подталкивать liquidityIndex вверх с аномально высокой скоростью.

Анализ уязвимости
Ключевым условием для атаки был почти пустой резерв на рынке dLEND-cbBTC (0x504d...3acc). Как только резерв был сжат до одной масштабированной доли, премии за флэш-займы перестали распределяться по значимой базе предложения. Поэтому повторяющиеся флэш-займы вызвали чрезвычайно быстрый рост liquidityIndex.
После того как liquidityIndex был завышен, конвертация из базового актива в масштабированный вошла в режим экстремального округления. В этом состоянии небольшой депозит мог создать одну дополнительную долю, в то время как гораздо более крупный вывод средств мог сжечь только одну долю. Эта асимметрия позволила злоумышленнику завысить обеспечение aCbBTC и занять реальные dUSD из другого резерва, поскольку проверки состояния (health checks) выполнялись на уровне Pool, и искаженный резерв cbBTC напрямую влиял на возможность межрыночного заимствования.
Анализ атаки
Эксплойт состоял из двух транзакций: 0x8d33d6...40ae7139 и 0xbec4c8...4fc33260.
Транзакция 1: Манипуляция liquidityIndex
-
Шаг 1: Заимствование
cbBTCу Morpho Blue. -
Шаг 2: Внесение
cbBTCв dLEND-cbBTC для минтинга 100 масштабируемых долей. -
Шаг 3: Вывод 99 долей, чтобы осталась только 1 доля, сжимая резерв dLEND-cbBTC до состояния почти пустого масштабируемого предложения.
-
Шаг 4: Прямой перевод 80 000 000 единиц
cbBTC(т.е. 0,8cbBTC) на aToken dLEND-cbBTC. -
Шаг 5: Выполнение 150 вызовов
Pool.flashLoan()для накопления премии в учете резервов, что поднялоliquidityIndexдо 6 226 621 999 999 999 999 999 999 999 979 728 276.

-
Шаг 6: Запуск повторяющихся циклов внесения и вывода средств для извлечения остаточных денежных средств резерва.
-
Шаг 7: Возврат флэш-займа.
Транзакция 2: реализация прибыли
-
Шаг 1: Снова заимствование
cbBTCу Morpho Blue. -
Шаг 2: Внесение ~7,72
cbBTCв уже скомпрометированный резерв для создания завышенной позиции обеспеченияaCbBTC.

- Шаг 3: Использование завышенного обеспечения для заимствования 257 328
dUSDс рынка dLEND-dUSD.

- Шаг 4: Продолжение извлечения
cbBTCчерез повторяющиеся циклы внесения/вывода.

- Шаг 5: Возврат флэш-займа Morpho и перевод заемных
dUSDна EOA-адрес злоумышленника.
Заключение
Этот инцидент является примером атаки через пустой рынок, которая хорошо задокументирована для форков Aave V3. Данный паттерн появлялся в нескольких протоколах, и методы защиты давно известны. Установление минимального порога предложения при инициализации резерва предотвращает вход резерва в состояние, где рост индекса становится неконтролируемым. Разработчикам форков Aave V3 следует рассматривать начальную загрузку резервов как критическую операцию и обеспечивать блокировку значимой ликвидности при развертывании, а не полагаться на органический приток депозитов для стабилизации индекса.
3. Инцидент Fun.xyz
Краткое резюме
17 марта 2026 года протокол инфраструктуры расчетов Fun.xyz в сети Polygon был взломан на сумму ~85,7 тыс. долларов. Первопричиной стало то, что устаревший контракт CheckoutPool открывал доступ к критической функции bridge() без контроля доступа и без привязки данных вызова (calldata) моста к получателю. Эта уязвимость позволила злоумышленнику перенаправить исполнение на доверенный путь расчетов и перевести средства на подконтрольный ему смарт-аккаунт.
Предыстория
CheckoutPool — ключевой контракт расчетов в инфраструктуре Fun.xyz. В нормальном режиме пользователь создает расчет через deposit(), а доверенный оператор продвигает его через пути расчетов, такие как bridge() и execute(). Для операций моста bridge() выполняет внешний вызов, основываясь на переданных вызывающим лицом параметрах bridgeParams.target и bridgeParams.callData.
Анализ уязвимости
Первопричиной является то, что устаревший контракт CheckoutPool (0x1304...2ec01a) открывал доступ к чувствительному пути маршрутизации через функцию bridge() без надлежащего контроля доступа, одновременно не проверяя предоставленные извне calldata моста на соответствие предполагаемому получателю. В частности:
-
Устаревшая реализация не требовала
onlyOperatorдляbridge(), позволяя любому внешнему вызывающему лицу вызывать функцию после создания расчета черезdeposit(). -
bridge()передавал предоставленные вызывающим лицомbridgeParamsв_bridgeToRecipient(), который выполнял внешний вызов, не проверяя получателя на соответствие расчетной записи.



Дополнительное операционное условие сделало эксплойт возможным: устаревший CheckoutPool по-прежнему сохранял привилегии оператора в CheckoutPaymaster на момент атаки. Это позволило сконструированному вызову bridge() достичь CheckoutPaymaster.activateAndCall(), который затем запустил более новый путь CheckoutPool.execute(), переводя средства на адрес под контролем злоумышленника.
Анализ атаки
Анализ основан на транзакции атаки 0x957bcf...1f4f5a.
-
Шаг 1: Создание смарт-аккаунта ERC-4337 0xb648 и назначение его отправителем и пеймастером в UserOperation.
-
Шаг 2: Вызов
deposit()как в устаревшем, так и в новом CheckoutPool, создание записи о расчете в новом CheckoutPool на сумму 85 730USDC. -
Шаг 3: Вызов
bridge()в устаревшем CheckoutPool с вредоноснымиbridgeParams: установкаbridgeParams.targetна CheckoutPaymaster и кодированиеbridgeParams.callDataкак вызоваactivateAndCall(), содержащего внешнююUserOperationв качестве внутренней нагрузки.

- Шаг 4: Выход на
execute()в новом CheckoutPool (0x1929...0215), который переводит 85 730USDCна 0xb648 — адрес, указанный какops[0].senderво внешнейUserOperation.

- Шаг 5: Вход в
EntryPoint.handleOps(): поскольку 0xb648 служит и отправителем, и пеймастером, и валидация аккаунта, и валидация пеймастера остаются под контролем злоумышленника, что позволяет ему получить прибыль в 85 730USDC.
Заключение
Инцидент был вызван отсутствием контроля доступа в устаревшем контракте CheckoutPool и привязки данных вызова к получателю, что привело к убыткам около 85,7 тыс. долларов. Для предотвращения подобных ситуаций протоколам следует обеспечить строгий контроль доступа к чувствительным потокам расчетов, гарантировать соответствие переданных извне данных получателям, определенным протоколом, и удалять устаревшие контракты из доверенных отношений после развертывания исправленных версий.
4. Инцидент Keom
Краткое резюме
18 марта 2026 года протокол кредитования Keom (форк Compound V2) в сети Polygon zkEVM был взломан на сумму около 35 тыс. долларов. Первопричиной стала ошибочная логика учета в redeemFresh(), вызываемой внутри redeemUnderlying(). Функция ограничивала сокращение долей до фактического баланса пользователя, но не пересчитывала соответствующим образом сумму выводимых активов. Это несоответствие позволило злоумышленнику вывести гораздо больше активов, чем позволяла его доля.
Предыстория
Keom — это форк Compound V2. Пользователи вносят ETH в рынок и получают kETH. При выводе средств протокол конвертирует kETH обратно в ETH по текущему курсу. Существуют две точки входа для вывода: redeem() для вывода по количеству долей и redeemUnderlying() для вывода желаемой суммы базового актива.
Анализ уязвимости
Ошибка находится в redeemFresh() рынка kETH (0x4c6e...0403), вызываемой redeemUnderlying(). Контролируемый пользователем redeemAmountIn сначала присваивается redeemAmount, а затем используется для вычисления redeemTokens по текущему обменному курсу. Если redeemTokens превышает баланс пользователя, функция ограничивает его до accountTokens[redeemer]. Однако redeemAmount не пересчитывается после этого ограничения и остается равным исходному redeemAmountIn. Это позволяет пользователю вывести полную сумму redeemAmount базовых активов, сжигая при этом лишь часть соответствующих долей.
Как показано ниже, redeemFresh() также проводит проверку состояния через redeemAllowed(). В архитектуре Compound V2, redeemAllowed() проверяет markets[cToken].accountMembership[redeemer] и вызывает проверку ликвидности только тогда, когда аккаунт вошел в этот рынок; в противном случае проверка пропускается полностью. Поскольку redeemAmountIn контролируется злоумышленником и может быть установлен произвольно большим, проверка ликвидности не сработала бы, если бы kETH по-прежнему учитывался как обеспечение. Это означает, что сама по себе ошибка учета не поддается эксплойту без предварительного обхода проверки здоровья.

Анализ атаки
Анализ основан на транзакции 0x4ccde7...03d9dfd8.
- Шаг 1: Вызов
mint()с всего 0,001ETH, получение минимального балансаkETH.

-
Шаг 2: Вызов
exitMarket()для сброса участия аккаунта в рынке kETH, чтобыredeemAllowed()полностью пропустил проверку ликвидности (как описано выше). -
Шаг 3: Вызов
redeemUnderlying()для вывода всего балансаETHрынка (~38,6ETH), используя ошибку учета для истощения запасовETHрынка.

Заключение
Инцидент был вызван ошибкой учета, при которой не происходил перерасчет redeemAmount после ограничения redeemTokens до фактического баланса, что привело к убыткам в размере около 35 тыс. долларов. Логика вывода средств должна пересчитывать все зависимые значения после любого ограничения, чтобы сохранить инвариант долей к базовому активу. Разработчикам форков Compound V2 следует внимательно изучить этот путь, так как аналогичные уязвимости могут существовать и в других производных продуктах.
5. Инцидент ShiMama
Краткое резюме
18 марта 2026 года протокол дефляционных токенов ShiMama в сети BNB Chain был взломан на сумму около 35 тыс. долларов. Первопричиной стало отсутствие контроля доступа к функции executePairBurn(), что позволило любому пользователю запускать принудительный вывод и сжигание резервов торговой пары, что привело к манипулированию ценой.
Предыстория
Протокол ShiMama включает в себя ончейн-механизм дефляции, предназначенный для изъятия токенов из пары AMM и их сжигания. Этот механизм реализован в контрактах ShiMama Protocol и ShiMama Token. Функция executePairBurn() в ShiMama Protocol вычисляет сумму изъятия на основе параметра referenceIn:
pullAmt = referenceIn * pairBurnBpOnSell / 10_000
Затем она вызывает forcePullFromPair() контракта ShiMama Token с последующим pair.sync() и сжиганием изъятых токенов.
Анализ уязвимости
Первопричина — отсутствие контроля доступа к executePairBurn() в контракте ShiMamaProtocol (0x5049...0b49a). Функция доступна извне без ограничений, поэтому любой пользователь может инициировать привилегированное движение резервов и синхронизацию пары. referenceIn также контролируется вызывающим лицом и никак не привязан к реальной сумме продажи. В ShiMamaToken.forcePullFromPair() протокол может напрямую перемещать балансы из пары Pancake без каких-либо ограничений, что делает возможным произвольное удаление резервов плюс немедленную синхронизацию и манипуляцию спотовой ценой.

Анализ атаки
Анализ основан на транзакции 0x13959b...3c20e001.
-
Шаг 1: Заимствование
WBNBчерез флэш-займ Moolah. -
Шаг 2: Перевод 30,78e18
ShiMama, полученных в более ранней транзакции, в контракт атаки. Поскольку прямые покупкиShiMamaна Pancake были отключены, злоумышленник получилShiMama, внося и выводя ликвидность в ShiMama Protocol до начала атаки. -
Шаг 3: Вызов
executePairBurn()для изъятия 1 311 349 143,96 токеновShiMamaиз пары Pancake и их сжигания, что эффективно завысило ценуShiMama. -
Шаг 4: Злоумышленник обменял 30,78e18
ShiMamaна 52,98e18WBNBна PancakeSwap по завышенной цене. -
Шаг 5: Возврат флэш-займа, оставив 52,98
WBNBв качестве чистой прибыли.

Заключение
Этот инцидент был вызван отсутствием контроля доступа к executePairBurn(), что открыло несанкционированный путь изменения резервов пула. Любая функция, изменяющая резервы, экономически чувствительна и должна быть строго защищена разрешениями. Входящие параметры, контролируемые пользователем, должны быть жестко привязаны к значениям, производным от протокола, для предотвращения возможности усиления изъятия резервов.
6. Инцидент BlindBox
Краткое резюме
19 марта 2026 года протокол ставок GameFi BlindBox в сети BNB Chain был взломан на сумму около 99 тыс. долларов. Первопричиной стала слабая случайность, позволившая злоумышленнику предсказать результат и достичь 100% коэффициента выигрыша. Кроме того, getTwapPrice() полагалась на спотовую цену, которой можно манипулировать, а не на реальную средневзвешенную по времени цену, что позволило злоумышленнику заранее надуть цену пула и делать ставки, превышающие установленные протоколом лимиты.
Предыстория
BlindBox позволяет пользователям делать ставки, переводя токены ATM на «мертвый» адрес. Протокол определяет результат на основе четности более позднего хэша блока. В случае выигрыша BlindBox выплачивает 1,95x от исходной суммы ATM из депозита «мертвого» адреса. Протокол использует getTwapPrice() для ограничения размера каждой ставки.
Анализ уязвимости
Контракт BlindBox (0x1F83...734c59) содержит две уязвимости:
- Слабая случайность: Когда время расчета превышает 256 блоков,
blockhash(bet.blockNum + 2)возвращает ноль. Затем протокол переходит к резервному варианту — случайности, производной отblock.prevrandao,betIdиblock.timestamp. Поскольку эти входные данные можно имитировать офчейн перед отправкой транзакции, злоумышленник мог вызыватьsettle()только в том случае, если вычисленный результат был выгодным, достигая детерминированного выигрыша.

- Манипулируемый лимит цены: Протокол использует
getTwapPrice()для ограничения размера ставки. Однако эта функция не реализует истинную средневзвешенную по времени цену (TWAP); вместо этого она читает спотовую цену в пулеATM/USDT. Это позволяет злоумышленникам обходить лимит путем манипулирования ценой пула перед совершением ставки.

Анализ атаки
Следующие шаги иллюстрируют паттерн атаки. Шаги 2 и 3 сформировали парную последовательность (например, betId=5 284), и злоумышленник повторил эту пару многократно для накопления прибыли.
-
Шаг 1: Манипуляция пулом
ATM/USDT, завышение спотовой ценыATM, чтобыgetTwapPrice()разрешил больший размер ставки на следующем шаге. -
Шаг 2: Размещение крупной ставки путем перевода суммы
ATMс надутым допуском на «мертвый» адрес (например, 0x4be049...3af12c).

- Шаг 3: Ожидание прохождения более 256 блоков, чтобы
blockhashвернул ноль и активировался резервный путь. Затем злоумышленник имитировал результаты офчейн и вызывалsettle()только в тот блоке, где вычисленный результат был выгодным (например, 0x68eedc...718ce8).

Заключение
Инцидент был вызван предсказуемой случайностью в сочетании с манипулируемой ценой в качестве входных данных TWAP, что привело к убыткам в размере около 99 тыс. долларов. Для снижения рисков протоколу следует удалить любой путь расчета, который становится предсказуемым после истечения окна blockhash, и заменить getTwapPrice() на источник цен, устойчивый к краткосрочным рыночным манипуляциям.
7. Инцидент Resolv
Краткое резюме
22 марта 2026 года протокол стейблкоинов Resolv в сети Ethereum столкнулся с компрометацией инфраструктурного ключа, что позволило несанкционированно выполнить логику завершения свопов. В ходе инцидента злоумышленник использовал привилегированную функцию для минтинга более 80 млн ничем не обеспеченных USR. Последствия вышли за рамки прямого минтинга, так как возникшая депег-ситуация (отвязка от курса доллара) с USR вызвала более широкое заражение в протоколах кредитования, где активы Resolv использовались в качестве обеспечения.
Предыстория
Resolv — это протокол стейблкоинов, в котором выпуск USR зависит от завершенных свопов, обеспеченных залогом. Его конвейер завершения свопа completeSwap() -> mint() -> transfer() напрямую влияет на циркулирующее предложение USR, поэтому зависит как от целостности авторизации, так и от целостности обеспечения. В обычном режиме completeSwap() в контракте Resolv (0xa27a...5861) может быть вызван только привилегированным инфраструктурным ключом (называемым SERVICE_ROLE в коде) после проверки соответствующего депозита обеспечения.

Анализ уязвимости
Инцидент произошел из-за компрометации привилегированного ключа, который вызвал доверенную логику расчетов и привел к пути минтинга USR без эквивалентного притока обеспечения. Как только злоумышленник получил контроль над привилегированными полномочиями подписи, путь completeSwap() не обеспечил никаких ончейн-предусловий для минтинга; проверка обеспечения полностью зависела от внесетевой (офчейн) авторизации. Это превратило компрометацию плоскости управления непосредственно в сбой целостности предложения.
Анализ атаки
-
Шаг 1: До совершения эксплойта злоумышленник отправил запрос на своп в транзакции 0x590b5c...de732c89, подготавливая необходимое состояние для последующего завершения вредоносного свопа.
-
Шаг 2: Используя скомпрометированный привилегированный ключ, злоумышленник вызвал
completeSwap()для минтинга более 80 000 000USRв трех транзакциях: 0xfe37f2...dc33743, 0x41b6b9...db1f18f и 0x7f9143...53a931d.
Заключение
Этот инцидент подчеркивает, что безопасность стейблкоинов зависит от жестких ончейн-предусловий минтинга, а не только от роли доверенного оператора. Важно отметить, что последствия инцидента вышли далеко за рамки 80 млн долларов несанкционированного минтинга USR. Поскольку активы Resolv широко использовались в качестве обеспечения в нескольких протоколах кредитования, потеря привязки к курсу вызвала более широкое заражение. Как сообщил Chaos Labs, ончейн-кураторы, использующие автоматизированные стратегии распределения капитала в погоне за доходностью, не имели средств риск-контроля в реальном времени и продолжали направлять свежий капитал на уже скомпрометированные рынки. То, что началось как локальный эксплойт, быстро переросло в событие заражения между протоколами, оставив кредиторов с миллионными «плохими долгами».
О BlockSec
BlockSec — поставщик комплексных решений для безопасности блокчейнов и крипто-комплаенса. Мы создаем продукты и услуги, которые помогают клиентам проводить аудит кода (включая смарт-контракты, блокчейны и кошельки), перехватывать атаки в режиме реального времени, анализировать инциденты, отслеживать незаконные средства и выполнять обязательства AML/CFT на протяжении всего жизненного цикла протоколов и платформ.
BlockSec опубликовала множество статей по безопасности блокчейнов на престижных конференциях, сообщила о нескольких атаках «нулевого дня» на приложения DeFi, заблокировала многочисленные попытки взлома, спасая более 20 миллионов долларов, и обеспечила сохранность миллиардов криптовалютных активов.
-
Официальный сайт: https://blocksec.com/
-
Официальный Twitter: https://twitter.com/BlockSecTeam



