Пока 79thVault говорил пользователям о «системном обновлении», из пула 79AU/USDT уже уходили миллионы долларов. 7 октября привилегированный кошелёк проекта использовал служебную функцию токена, вынес 79AU из пула PancakeSwap и продал монеты обратно за USDT. Первые оценки ущерба достигли $12,5 млн, а причина сразу вызвала вопрос: взломали ключ или доступ использовал инсайдер.
GoPlus Security восстановила первоначальную цепочку из семи вызовов за час. Адрес с ролью OPERATOR_ROLE переместил 2,01 млн 79AU на внешний кошелёк, после чего токены примерно за 95 обменов вернулись в тот же пул уже как продаваемый актив. Запасы USDT сократились примерно с $15,2 млн до $3,9 млн, а выручка превратилась в 16 249 BNB. Все операции шли через BNB Chain.
Механизм работал благодаря привилегии внутри контракта 79AU. Оператор мог забрать токены с выбранного адреса, включая торговую пару, а затем вызвать sync(), чтобы пул принял новое состояние резервов. Такая схема не требовала взламывать PancakeSwap. Один служебный ключ фактически давал возможность менять баланс пула, причём без мультиподписи и задержки выполнения операций.
Позднее Bitquery подсчитала, что ранняя оценка пропустила второго продавца. По реконструкции Bitquery, девять привилегированных операций вывели 2,52 млн 79AU, а два кошелька получили из пула $14,35 млн в USDT и конвертировали выручку в 17 881 BNB. Второй продавец подождал около пяти часов и вывел ещё $1,75 млн. Исходный код 79AU не был верифицирован на BscScan.
История особенно выделяется тем, что около 79% токенов ликвидности пула были сожжены, то есть обычный вывод этой доли резервов считался заблокированным. Встроенная привилегия обошла такую защиту, поскольку позволяла перемещать сами 79AU без погашения LP-токенов. Защита не помогла. Похожий риск от закрытых ключей уже приводил к компрометации токенов в BSC.
Вопрос о происхождении атаки остаётся открытым. GoPlus допускала утечку операторского ключа или действия человека с внутренним доступом. Дополнительные сомнения вызвали переговоры в блокчейне: сообщение с предложением вернуть активы за 10% вознаграждения отправили с того же привилегированного адреса, который участвовал в выводе. По данным Bitquery, противоположная сторона просила оставить 25%.
79thVault позднее признала атаку и связала инцидент со слабостями в управлении правами доступа. По версии команды, злоумышленник получил приватный ключ оператора, но публичных данных недостаточно, чтобы независимо установить способ компрометации или исключить инсайдерскую версию. Сам факт движения средств и привилегированных вызовов подтверждается блокчейном.
9 октября история получила неожиданный поворот: на указанный командой адрес вернулись 15 000 BNB стоимостью около $11 млн. По первоначальной оценке в 16 249 BNB возврат составляет около 92%, но расчёт Bitquery с 17 881 BNB снижает долю примерно до 84%. Подобные сделки с возвратом похищенного уже встречались после взломов DeFi, но личность участника операции и судьба остатка пока не раскрыты.
