Группа кибербезопасности 0d из dWallet Labs выявила в сети Tron критическую уязвимость механизма мультиподписи, которая затрагивала активы примерно на $500 млн.
«Баг позволял любому подписанту (без учета веса) мультисиг-аккаунта полностью преодолеть установки безопасности Tron, независимо от порога и количества подписывающих сторон»,
— заявили исследователи.
19 февраля они связались с командой блокчейн-проекта через интерфейс баунти-программы. Разработчики сети «быстро признали наличие уязвимости» и внесли исправление в течение нескольких дней. Эксперты 0d получили вознаграждение за выявление проблемы высокой степени серьезности. Сумму они не озвучили.
Исследователи пояснили, что используемый в Tron механизм проверки мультисиг-транзакций сопоставлял подписи со списком, чтобы избежать их двойного использования. Однако злоумышленник мог генерировать случайные адреса для подписи помимо детерминированного. Это позволяло обойти защиту и получить достаточный вес для подтверждения операции.
Уязвимость допускала еще один вектор атаки, который даже не требовал наличия каких-либо разрешений для кошелька. Злоумышленнику была необходима только транзакция, подписанная кем-то частично без достижения порога исполнения. Он мог реплицировать первую подпись, изменить значение recoveryId и произвести перевод. Под потенциальной угрозой оказались все активы в аккаунтах с мультиподписью в сети на сумму около $500 млн, подчеркнули в dWallet Labs.
Внесенные командой Tron «за считанные дни» изменения в код ликвидировали уязвимость. Вместо проверки по списку подписей разработчики внедрили в механизм управления мультисиг-аккаунтами сопоставление по адресам сообщений.
Источник: forklog.com