Актуальные темы
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Добро пожаловать обратно в "Вспышку уязвимостей Шерлока", где мы подчеркиваем значимую уязвимость, обнаруженную во время аудита Шерлока.
На этой неделе мы рассматриваем атаку типа "отказ в обслуживании", найденную в конкурсе @GMX_IO от @0xdeadbeef____ и @IllIllI000.
Благодарим @int0x1catedCode за разбор.

Резюме уязвимости:
Уязвимость позволяет злоумышленнику манипулировать порядком выполнения операций, предоставляя фальшивые длины причин отката, которые не соответствуют фактическим данным. Это приводит к тому, что обработка ошибок протокола считывает неправильные области памяти, что потенциально нарушает процесс выполнения или вызывает неожиданные поведения при обработке неудачных заказов.
Шаги атаки:
1. Этап настройки
Разверните вредоносный контракт, который реализует пользовательское поведение отката.
Вредоносный контракт должен быть вызываемым целевым протоколом (например, в качестве обработчика обратного вызова).
2. Создание вредоносных данных отката
Структурируйте данные отката с поддельным параметром длины.
3. Выполнение заказа через протокол
Создайте заказ, который вызовет взаимодействие с вредоносным контрактом.
Когда протокол обрабатывает заказ и вызывает вредоносный контракт, он откатывается с созданными данными.
Обработка ошибок протокола пытается декодировать причину отката, используя поддельную длину.
4. Вызов переполнения чтения памяти
Протокол читает память на основе поддельного параметра длины.
Это приводит к тому, что он читает за пределами фактических границ данных отката.
Каков эффект?
Отказ в обслуживании: Заказы могут не выполняться должным образом, блокируя законные операции протокола, такие как ликвидация плохих позиций.
Нарушение выполнения заказов: Пакетная обработка заказов может быть приостановлена, что повлияет на нескольких пользователей.
Газовое огорчение: Обработка неправильно сформированных данных отката может потреблять чрезмерное количество газа.
Коренная причина:
1. Неконтролируемые параметры длины: Протокол доверяет значению длины, указанному в данных отката, без проверки
2. Отсутствие проверок границ: Нет проверки того, что заявленная длина соответствует фактическому размеру данных
Смягчение:
1. Всегда проверяйте длину данных для отката
2. Реализуйте максимальные ограничения длины
Мы гордимся тем, что помогли обеспечить безопасность @GMX_IO благодаря этому открытию.
Когда безопасность имеет первостепенное значение, Шерлок — правильный выбор.
2,34K
Топ
Рейтинг
Избранное