Исследователь безопасности, известный как 0xflorent, сотрудничал с командой, стоящей за контрактом ICO ethereum (ETH) 2016 года, чтобы разблокировать около $2 млн в эфире, которые были заблокированы девять лет, в координированной белой атаке, использовавшей уязвимость переполнения целых чисел, которую первоначальные разработчики так и не устранили.
Контракт принадлежит HongCoin, токен-сейлу 2016 года, который не достиг своей цели по привлечению средств и должен был автоматически вернуть эфиры инвесторам, но не смог этого сделать из-за ошибки в функции возврата.
Путь 0xflorent разморозил 1 003,62 ETH, и теперь 48 первоначальных инвесторов могут запросить средства. Двое уже это сделали, получив в совокупности 96,5 ETH, что составляет примерно 193 000 долларов США, сказал он в потоке на X в воскресенье.
Первый белый хат-эксплоит на Ethereum: я разблокировал 1 003,62
Ξ ($2 000 000) заблокированы в смарт-контракте ICO 2016 года
в течение 9 лет.
48 первоначальных инвесторов теперь могут получить свои средства. pic.twitter.com/lyh5iyaDu7
Логика возврата средств по контракту отклонила всех держателей, чей баланс токенов превышал глобальный счетчик, который годы частичных возвратов снизили до 356, ограничив дальнейшие возвраты 3,56 ETH.
0xflorent обнаружил, что админ-функция в контракте, ограниченная мультиподписным кошельком HongCoin, не содержала защит от переполнения целых чисел, которые позже были внедрены в язык Solidity. Вызов её с определённым входным значением сбрасывал баланс держателя до единицы, что позволяло пройти проверку возврата средств и высвободить средства.
Однако восстановление не было односторонним эксплуатированием. Поскольку админ-функция требовала мультиподписи HongCoin для выполнения, 0xflorent отправил электронное письмо команде, проверил последовательность разблокировки на тестовом форке мейннета Ethereum, и сама команда подписала транзакции разблокировки.
Он подписал 41 транзакцию, по одной на каждого заблокированного держателя, освободив примерно 1000 ETH, которые действительно были заблокированы. Еще семь держателей имели достаточно небольшие балансы, чтобы вернуть средства напрямую без использования обходного пути.
Это уже второе такое восстановление, которое 0xflorent опубликовал за восемь дней.
24 мая он заявил, что вернул 19,329 ETH, что составляет примерно 40 590 долларов США, их первоначальным владельцам, включая 5,141 ETH из неудавшегося ICO в январе 2018 года и 14,190 ETH из семи просроченных атомарных свопов в аккаунте пользователя Liquality Wallet, который стал недоступным после закрытия кошелька в 2024 году.
Восстановление происходит на фоне серьезной волны эксплуатаций в DeFi: только в апреле по протоколам было похищено сотни миллионов долларов, причем крупнейший инцидент — около 293 миллионов долларов, похищенных у Kelp DAO.

