Контракт считал награду по сиюминутной цене — злоумышленник её обрушил и получил $109 тыс
15.07.2026 | CoinKyt Company

13 июля 2026 года злоумышленник воспользовался простой логической слабостью: контракт VECAndETH считал размер выплачиваемой награды по текущей рыночной цене — и не проверял, не была ли эта цена только что искусственно изменена. Атакующий сам создал нужную цену, получил награду и вернул всё обратно.

 


Введение


VECAndETH — контракт на BNB Smart Chain, который выплачивает пользователям награду в Binance-Peg ETH. Binance-Peg ETH — это токенизированный эфир (ETH) в сети BNB Smart Chain: обычный ETH, но «упакованный» для использования в другой сети.


Размер награды рассчитывался на основе текущей цены Binance-Peg ETH, которую контракт брал напрямую из DEX-пула — торгового пула на децентрализованной бирже. Это значит: чем ниже цена ETH в пуле, тем больше ETH нужно выплатить, чтобы обеспечить нужный размер награды в долларах. Злоумышленник использовал именно эту зависимость.

 


Ход инцидента


1️⃣ Накопление большого объёма ETH. Атакующий временно собрал на своём контракте около 22 500 Binance-Peg ETH — по рыночной цене это около $42 млн. Средства поступили через несколько DeFi-протоколов.


2️⃣ Искусственное обрушение цены. Все 22 500 Binance-Peg ETH были отправлены в пул Binance-Peg ETH/BSC-USD на PancakeSwap. Резкий вброс огромного объёма одного токена в пул ликвидности изменил соотношение активов и обрушил цену Binance-Peg ETH. Из пула злоумышленник получил около 451 300 BSC-USD — критически меньше, чем стоили внесённые $42 млн. Но это и не было целью: цель — временно сделать ETH «дешёвым» в глазах контракта VECAndETH.


3️⃣ Запрос награды по заниженной цене. Пока цена в пуле была искусственно низкой, злоумышленник запросил у VECAndETH выплату награды. Контракт считал: цена ETH упала — значит, для выплаты нужной суммы в долларах нужно выдать больше ETH. И выдал — около 68,5 Binance-Peg ETH вместо нормального количества.


4️⃣ Восстановление баланса. Сразу после получения награды злоумышленник вернул 451 300 BSC-USD обратно в тот же пул и забрал ~22 500 Binance-Peg ETH. Цена восстановилась, временно привлечённые средства вернулись.


5️⃣ Ущерб. После всех операций у злоумышленника осталось ~61,2 лишних Binance-Peg ETH — около $109 тыс. чистого ущерба для контракта.

 


Почему это стало возможным


Контракт брал цену напрямую из DEX-пула в момент расчёта — без каких-либо дополнительных проверок. Такой подход называется использованием «спотовой цены», и он уязвим для манипуляций: крупная операция может на короткое время сильно изменить цену в любом пуле.


Защита от таких атак существует и хорошо известна: использовать TWAP (Time-Weighted Average Price) — цену, усреднённую за некоторый период времени, например за последние 30 минут. Мгновенный вброс токенов влияет на спотовую цену, но практически не влияет на среднюю — манипуляция не имела бы смысла.


Здесь такой защиты не было. Контракт доверял цене в момент запроса — и не задавался вопросом, откуда вдруг такое значение.

 


Детали расследования: движение средств


После всех операций чистый заработок в размере ~61,2 Binance-Peg ETH (~$109 тыс.) оказался на адресе злоумышленника 0x39B3D12f8C4e9644f8A9Eba9c07Ca37DF9eCF27c. Средства были конвертированы в BNB через сервис Relay Link и с того же адреса отправлены в миксер Tornado Cash.


На момент расследования средства выведены через миксер, дальнейшее отслеживание существенно затруднено.


Транзакция: 0xe1f1e3e0706aa995b47a8ba1d310526e14f4db6ad78277853fa10932236eeb72

 


Заключение


Атака на VECAndETH — классический пример манипуляции спотовой ценой. Злоумышленник не взламывал контракт и не искал скрытых уязвимостей: он просто создал ситуацию, при которой механика выплаты наград работала против самого протокола.


Контракт видел «дешёвый» ETH и честно выплачивал больше — ровно так, как и был запрограммирован. Проблема в том, что «дешевизна» была искусственной и продержалась ровно столько, сколько нужно для одного запроса награды.


Средства выведены через Tornado Cash. Команда «КоинКит» продолжает мониторинг связанных адресов.