avatar
The Open Dev Blog
@TheOpenDevBlog
20.09.2024 12:20
Критическая уязвимость в Tradoor.io

Не все знают, но в TON-е существует прямой конкурент Storm trade, на котором можно также торговать perpetuals на различные криптовалюты.
И интересной отличительной чертой является возможность торговать опционами, причём очень короткими, начиная с 5-минутных.

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

Не буду вдаваться в подробности, как именно должна рассчитываться справедливая стоимость опционов различной длительности (вкратце, чем выше волатильность, тем дороже в моменте должен быть опцион), так в чём же заключается уязвимость?

Когда я решил проанализировать, что же передаётся в контракт при покупке опциона, оказалось, что туда прямо из пользовательского интерфейса передаётся и стоимость опциона, и количество купленых опционов, и много другой интересной информации. После нескольких попыток отправки транзакций с измененными вручную значениями оказалось, что их индексером при открытии транзакции совершенно не проверялась цена, по которой происходит покупка, поэтому появлялась возможность купить опцион на любой срок и любой стоимости. А это значит..? Верно, бесконечное плечо!

Пример - на скриншоте я купил PUT опцион на 5 минут с плечом ~43,000х. Но открыть опцион, очевидно, можно было на любой срок и абсолютно любым плечом. Суть в том, что открыв CALL и PUT опцион с огромным плечом одновременно, пользователь мог получить буквально бесплатные деньги, поскольку для выхода позиции в огроменный плюс было достаточно абсолютно любого минимального изменения цены в любую сторону.

Это означает возможность вывода ВСЕЙ ликвидности из волта опционов, совершив всего две сделки за 20$!

Я сразу попробовал связаться с командой через их бота поддержки, написал им про существующую уязвимость, и хоть ответа я так и не получил - буквально спустя пару часов они отключили индексер, а на следующее утро уязвимость уже была исправлена, теперь при попытке покупки опциона по произвольной цене вам просто вернутся ваши USDT. Конечно жаль, что команда не захотела отвечать на мой репорт, но исправили очень оперативно, за что ребятам респект. Если у кого-то есть контакты фаундеров, скиньте в лс, а то сам я не нашёл ничего кроме их чата, где не хочется наводить fud.

А эти заработанные 90$ в сделке при помощи бага я уже слил обратно, тестируя их протокол дальше

@theOpenDevBlog
🔥 15
👏 8
🤯 3
👍 2
1
7 44 5.6K

Обсуждение 7

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram

The Open Dev Blog

1.3K
Security audits: @TheOpenDevTeam

Contact: @rends_east, @therealmaloleg or @bazrov
Открыть в Telegram