По данным ICON Foundation, эксплойт повторного воспроизведения транзакций ICON от 27 августа позволил вывести 119 866 000 ICX и 531 600 bnUSD из активов фонда после того, как два легитимных сообщения о выводе были повторно использованы 1 492 раза. В отчете о разборе инцидента от 30 августа сообщается, что 1 490 вызовов завершились успешно, при этом депозиты, балансы или позиции пользователей затронуты не были.
Масштабный выпуск ICX — это не то же самое, что подтвержденный убыток. ICON оценивает чистый убыток на сегодняшний день примерно в 150,2 ETH плюс 31 204 USDC, при этом подавляющая часть ICX отслежена, заморожена и находится в процессе возврата. Фонд заявил, что bnUSD и SODA были возвращены в полном объеме, однако объемы, удерживаемые биржами, могут быть пересмотрены. Это различие важно, поскольку ICON не получил от бирж точных данных о том, сколько ICX было удержано, конвертировано или выведено.
Уязвимость позволяла атакующему изменять часть идентификатора вывода, не меняя подписанный полезный груз, который проверялся. ICON проследил несоответствие до изменения, предназначенного для стандартизации сообщений о выводе до 32 байт, которое направляло часть серийного номера через логику диапазона float64, а не через точную целочисленную арифметику.
В результате проверка уникальности контракта смотрела на старшие биты, которые атакующий мог изменять, в то время как криптографическая проверка охватывала неизменные младшие 256 бит. Подписанный полезный груз и подпись оставались идентичными в каждом наборе воспроизведений, но измененная неподписанная часть делала вызовы якобы уникальными. Два вызова были отклонены; каждый успешный вызов зачислял средства на один и тот же кошелек ретранслятора. ICON заявил, что уязвимость была специфична для его реализации, поскольку другие поддерживаемые блокчейны использовали целые числа фиксированной ширины, которые не могли привести к такому же несоответствию.

Обнаружение эксплойта повторного воспроизведения ICON произошло до сдерживания
Система мониторинга ICON сработала в 02:08 UTC, через семь минут после начала эксплойта. Технический персонал начал расследование около 03:40, с разрывом в 92 минуты. Пострадавший контракт был приостановлен в 03:53, через 105 минут после предупреждения.
Атакующий начал распределять ICX по депозитным адресам бирж в 02:44, по данным ICON, и распределение продолжалось примерно до 05:20. Фонд заявил, что пауза на стороне ICON не могла остановить движение средств, уже переведенных под управление бирж.
Сеть была остановлена в 06:18:54 и возобновлена примерно в 07:51 на следующий день, примерно через 25 часов. Публичные уведомления от Bitvavo, Bitget и KuCoin подтверждают, что депозиты и выводы ICX были приостановлены во время инцидента, хотя ни одна из них не заявляет, что удерживает средства атакующего, и не подтверждает замороженный объем.
Аудит ретранслятора от ноября 2025 года проверил отдельные части кода ретранслятора и верификатора, включая файлы верификатора ICON, но в опубликованной области охвата не был указан исходный код затронутого миграционного контракта. Ни один из девяти раскрытых выводов не указывал на несоответствие серийного номера. ICON заявил, что связанная с инцидентом логика ретранслятора была проверена, но этот пробел не вошел в результаты аудита.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Liam 'Akiba' Wright




