Глубокий анализ: атака на манипуляцию NAV Morpho хранилища с использованием闪电贷 после отключения USR

robot
Генерация тезисов в процессе

Написано:菠菜菠菜

22 марта 2026 года протокол Resolv столкнулся с утечкой приватного ключа, злоумышленник произвел несанкционированное создание 80 миллионов беззалоговых USR, что привело к резкому падению стоимости USR с $1 до $0.025.

Последствия этого инцидента затронули не только держателей USR, но и группу более умных людей, которые на платформе Morpho осуществили сложную манипуляцию NAV хранилища.

В этой статье подробно разберем логику этого атаки.

一、Понимание двухуровневой архитектуры Morpho

Перед тем как говорить об атаке, необходимо понять архитектурный дизайн Morpho, иначе дальнейшее будет непонятно.

Мир Morpho делится на два уровня:

Нижний уровень:

Morpho Blue (также называемый Morpho Core). Это очень простая, неизменяемая платформа кредитования. Ее философия — “без разрешений” — любой может создать рынок кредитования, любой может вносить, брать взаймы и проводить ликвидацию.

Каждый рынок определяется четырьмя параметрами: актив для займа, актив залога, уровень ликвидации (LLTV), адрес оракула, модель процентной ставки.

Между рынками полная изоляция: проблемы одного рынка не затрагивают другие.

Верхний уровень:

MetaMorpho Vault (хранилище). Это хранилище стандарта ERC-4626, по сути — “фондовый продукт”.

Пользователи вносят USDC в хранилище, а управляющий (Curator) распределяет эти деньги по разным рынкам Morpho Blue для выдачи кредитов и получения процентов.

Пользователи владеют долями в хранилище (shares), стоимость которых растет с накоплением процентов.

核心公式——每股净值(NAV / Price Per Share):每股净值 = totalAssets / totalSupply

totalAssets — это сумма всех позиций по активам в хранилище на всех рынках (включая выданные кредиты, так как это “дебиторская задолженность”). totalSupply — общее количество выпущенных долей. Когда накапливаются проценты, totalAssets растет, а totalSupply остается неизменным, поэтому стоимость доли увеличивается — так зарабатываете деньги.

二、supply(onBehalf) — любой может вносить деньги от имени хранилища

Это первый ключевой момент атаки.

В Morpho Blue функция supply() имеет параметр onBehalf. Изначально она предназначена для удобства сторонних автоматизированных стратегий — например, смарт-контракты могут вносить деньги за пользователя.

Но она полностью без разрешений: любой может указать любой адрес в качестве onBehalf, включая адрес хранилища.

Официальная документация Morpho ясно предупреждает: “Warning: Anyone can supply on behalf of the vault so the call to updateWithdrawQueue that expects a market to be empty can be griefed by a front-run.”

Когда вы вносите 10 000 USDC от имени хранилища, позиция по активам этого рынка увеличивается на 10 000, и totalAssets тоже увеличивается на 10 000. Но общее количество долей (totalSupply) не меняется — ведь никто не вносит новые средства через deposit().

Результат: стоимость доли (NAV) повышается.

В обычных условиях это — “пожертвование” хранилищу: вы своими средствами увеличиваете доходность всех держателей долей, что кажется глупым. Но при определенных условиях это можно использовать.

三、Supply Cap = 0 ≠ безопасность

После того как USR потерял привязку, некоторые управляющие хранилищем срочно установили лимит supply cap для рынка USR/USDC равным 0, что означает, что больше нельзя вносить деньги в этот рынок. Казалось бы, проблема решена?

Проблема в том, что Supply Cap — это ограничение на уровне хранилища, а не Morpho Blue.

Управляющий хранилищем контролирует только внутреннюю функцию _supplyMorpho().

Но supply(onBehalf=vault) взаимодействует напрямую с контрактом Morpho Blue Core, полностью обходя логику хранилища: очередь поставки, лимит supply, проверку прав распределителя — все это игнорируется.

Можно провести аналогию: управляющий хранилищем закрыл вход (Cap=0), а злоумышленник через заднюю дверь Morpho Core напрямую закинул деньги.

四、Зашитый в коде оракул — маскировка плохого долга

Это второй важный момент.

Оракул рынка USR/USDC установлен как фиксированный 1:1. То есть, независимо от того, насколько упала цена USR на внешнем рынке, внутри Morpho 1 USR всегда равен 1 USDC.

Почему управляющие хранилищем используют фиксированный оракул? Потому что USR — “стабильная монета”, и в нормальных условиях ее цена колеблется мало. Фиксированный оракул помогает избежать ложных ликвидаций из-за краткосрочной нехватки ликвидности.

Но когда USR действительно потерял привязку, фиксированный оракул становится катастрофой: заемщики используют обесцененные USR в качестве залога, чтобы взять USDC, а протокол при этом остается в неведении.

Механизм обработки плохого долга в Morpho полностью выходит из строя: в версиях V1.0 и V1.1 механизм реального времени и механизм равномерного распределения требуют, чтобы протокол мог распознать плохой долг.

Зашитый в коде оракул не позволяет это сделать.

五、Полный сценарий атаки — пятишаговая цепочка

Теперь все условия созданы. Ниже — атомарные операции, выполняемые в рамках одной транзакции:

(здесь, вероятно, идет описание последовательности действий, но в предоставленном тексте оно отсутствует)

六、Почему необходим именно flash loan?

Это самый часто игнорируемый момент. Прибыль атаки заключается в “фиктивном увеличении totalAssets с последующим распределением прироста по долям”. Если злоумышленник не использует flash loan, он не имеет доли — даже если увеличит totalAssets, все прирост пойдет другим держателям, а он сам ничего не получит.

七、Кому достаются деньги?

Дополнительные 12 300 USDC, полученные злоумышленником, не появляются из ниоткуда. Эти деньги — реальные ликвидные средства в других безопасных рынках хранилища.

При выводе средств хранилище по очереди запрашивает USDC из разных рынков. В рынке USR/USDC USDC уже выдано полностью, вернуть деньги невозможно. Поэтому средства берутся из других рынков — например, wETH/USDC, cbBTC/USDC и других.

八、Эффект наложения трех уязвимостей

На этот раз атака — результат совокупности трех проектных недостатков:

(здесь, вероятно, идет описание конкретных уязвимостей, но в предоставленном тексте оно отсутствует)

结语

Минималистская философия Morpho — без разрешений, неизменяемость, минимальное управление — в большинстве случаев является преимуществом. Но этот инцидент показывает, что минимализм в дизайне влечет за собой большую ответственность для участников верхнего уровня.

Поскольку протокол не проверяет оракулы, управляющие должны делать это самостоятельно. Отсутствие ограничений supply(onBehalf) требует дополнительных мер защиты на уровне хранилища.

Для вкладчиков важнее “выбрать правильного Curator”, чем просто “выбрать Morpho”. Протокол — это инструмент, и его безопасность зависит от того, кто и как его использует.

MORPHO-4,52%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • комментарий
  • Репост
  • Поделиться
комментарий
Добавить комментарий
Добавить комментарий
Нет комментариев
  • Закрепить