
11 мая 2026 года злоумышленник похитил около $140 тыс. из казначейства протокола INK Finance в сети Polygon. Атака стала возможной из-за отсутствия проверки того, кто имеет право добавлять получателей выплат. Атакующий просто записал сам себя в список разрешённых — и система послушно отправила ему деньги.
Что произошло
INK Finance — это протокол для управления корпоративными финансами в блокчейне. Внутри него есть казначейство (Treasury Proxy) — хранилище средств, из которого организация производит выплаты сотрудникам или участникам. Список тех, кто имеет право на выплату, ведётся через систему, которую называют payroll (буквально — «расчётная ведомость»).
Атакующий нашёл уязвимость именно в этом месте. Вот что он сделал:
Сначала в подготовительной транзакции (0x619296d6f9ba99120a534f4eb93f3db291dabbbb22b1ba170d2a023078422b67) он добавил подконтрольный адрес в список получателей выплаты через уязвимую логику payroll. Указал завышенную сумму. Система не спросила, есть ли у него право это делать.
Затем в основной транзакции (0xb469a24ec737be16fe41367a7b5b315c7f03b4e0ff3af50b3a2db03b3066b982) атакующий просто вызвал функцию получения выплаты. Казначейство проверило: «этот адрес в списке разрешённых? Да». И перевело 140 тыс. USDT как обычную законную выплату.
Почему это стало возможным
Представьте, что в офисе есть журнал, куда записывают тех, кому нужно выплатить зарплату. Любой желающий может подойти и вписать своё имя. Бухгалтер не проверяет, кто делает запись, — он просто платит всем, кто в списке.
В контракте INK Finance не было нормальной проверки того, кто имеет право добавлять получателей выплат. Не было требования подтвердить полномочия — подписи администратора, мультиподписи (механизма, требующего нескольких согласий) или другой защиты.
Атакующий воспользовался открытой дверью: сам создал себе право на выплату, сам указал сумму — и казначейство выполнило перевод как будто так и должно быть.
Детали расследования: движение средств
1️⃣ Похищенные 140 тыс. USDT0 поступили на адрес атакующего 0x90b147592191388e955401af43842e19faa87ee2 в сети Polygon.
2️⃣ Оттуда было сделано два перевода:
- $10 тыс. ушли на адрес 0xb20C1a1c328998cE8bD42c98c6a9754dd432A9c5 в той же сети Polygon. На момент расследования средства там и остаются.
- Оставшиеся ~$130 тыс. были переброшены в сеть Ethereum.
3️⃣ Уже в Ethereum атакующий обменял USDT на ETH через децентрализованную биржу и несколькими транзакциями отправил средства в миксер Tornado Cash — сервис, который перемешивает транзакции от разных пользователей, чтобы скрыть происхождение денег и затруднить отслеживание.
Заключение
Атака на INK Finance — пример того, как уязвимость в, казалось бы, «вспомогательной» функции (добавление получателя выплаты) открывает прямой доступ к казначейству. Сам механизм перевода работал правильно — проблема была на шаг раньше, там, где систему можно было обмануть без каких-либо особых технических знаний.
Основная часть средств ушла в Tornado Cash, что существенно затрудняет их дальнейшее отслеживание. Команда КоинКит продолжает мониторинг адресов.


