Урок не выучен: Onyx теряет $3,8 млн из-за старой уязвимости

Протокол снова подвергся атаке из-за ошибки в Compound Finance v2.


5o7ecgtlmfurmet6wvrzh6nsoe17o8fu.jpg


26 сентября протокол децентрализованных финансов ( DeFi ) Onyx подвергся атаке, в результате которой злоумышленникам удалось похитить активы на сумму $3,8 миллиона. Информацию об инциденте опубликовала платформа по безопасности блокчейнов PeckShield. Основной причиной кибератаки стал известный баг в кодовой базе Compound Finance версии 2, который уже использовался ранее для эксплуатации уязвимостей Onyx в ноябре прошлого года.


zp7axuk4ffcz0ma68jjek11jx0w1m7f6.png


По данным отчета, уязвимость существовала в контракте ликвидации NFT, который также способствовал реализации атаки. Проблема заключалась в том, что контракт неправильно проверял ввод данных пользователей, что позволило злоумышленникам завысить вознаграждение за самоликвидацию активов.


5ylne3ynogd86ogoae08zmtc6q9ng5gk.png


Команда Onyx подтвердила факт использования этого уязвимого контракта и указала его как основной фактор, приведший к инциденту

По информации PeckShield, злоумышленники вывели 4,1 миллиона виртуальных USD (VUSD), 7,35 миллиона Onyxcoin (XCN), 0,23 Wrapped Bitcoin (WBTC), около $5000 в стейблкоине Dai (DAI) и $50 000 в стейблкоине USDt (USDT). Общая сумма потерь составила более $3,8 миллиона.

Известная уязвимость в кодовой базе Compound Finance v2 неоднократно становилась причиной атак на различные децентрализованные финансовые протоколы. В апреле 2023 года из-за этого же бага пострадал протокол Hundred Finance, а в октябре 2023 года он был впервые использован против Onyx.

Эксплуатация уязвимости возможна только в условиях «пустого рынка», когда на рынке отсутствует ликвидность. Обычно это происходит при запуске нового рынка, что и сделало протокол Onyx уязвимым. Однако, как утверждает команда протокола, основной причиной инцидента стала ошибка в контракте ликвидации NFT.

PeckShield также поддержала эту версию, отметив, что проблемный контракт стал дополнительным фактором, способствующим атаке. Ошибка заключалась в недостаточной проверке данных, вводимых пользователями, что дало возможность злоумышленникам манипулировать размером вознаграждений за ликвидацию.

Данный инцидент не является единичным случаем в сфере децентрализованных финансов (DeFi). Только за сентябрь несколько других проектов также пострадали от уязвимостей. Так, 27 сентября протокол Bedrock потерял более $2 миллионов из-за ошибки в контракте uniBTC, а 23 сентября проект Bankroll Network лишился $230 000 в результате атаки, при которой злоумышленники использовали уязвимость функции «buyFor», чтобы увеличить свои прибыли.