Двойной учёт прибыли: ошибка в логике протокола обернулась на $165 тыс
07.04.2026 | CoinKyt Company

5 апреля 2026 года в сети Linea был зафиксирован инцидент с ущербом 165 тыс. USDC. Атакующий одновременно выступил в роли поставщика ликвидности и трейдера, эксплуатируя ошибку внутреннего учёта протокола.


TX: 0xcb0744a0d453e5556f162608fae8275dabd14292bffbfcd8394af4610c606447

 


Ход инцидента


Атакующий заранее развернул несколько helper-контрактов и в одной транзакции сыграл сразу две роли.


1️⃣ Получен flash loan на 60 тыс. USDC.


2️⃣ Одни адреса добавили ликвидность в протокол как LP.


3️⃣ Другие адреса открыли против этой ликвидности крупные сделки с плечом.


4️⃣ Протокол начислил LP-адресам большую бумажную прибыль (RealizedPnL).


5️⃣ LP-адреса вывели из vault значительно больше, чем вносили.


6️⃣ Flash loan возвращён. Чистый результат — 165,617.74 USDC.


Почему это стало возможным


LP на подобных протоколах зарабатывают на позициях трейдеров: если трейдер теряет — LP зарабатывает. Ошибка была в том, что протокол считал одну и ту же сумму дважды: сначала как прибыль LP-позиции, затем ещё раз как доступный к выводу залог. Бумажная внутренняя цифра превратилась в реальные USDC, которые выплатил сам vault.

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


Детали расследования: движение средств


Средства поступили на адрес 0x8D6778d7FAe00aD2e0bc12194cF03B756FED9Db3, затем переброшены через Across Protocol в сеть Ethereum. Далее по цепочке адресов все средства направлены в миксер Tornado Cash.

 


Заключение


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


Команда КоинКит продолжает мониторинг адресов, связанных с инцидентом.