Угроза безопасности кода из-за уязвимости целочисленного переполнения в модуле безопасности Move

В языке Move существует уязвимость переполнения целого числа в модуле управления ссылками

Недавно была обнаружена серьезная уязвимость переполнения целого числа в модуле безопасной ссылки языка Move. Эта уязвимость может привести к атакам отказа в обслуживании и представляет потенциальную угрозу безопасности языка Move.

Язык Move выполняет проверку кода перед выполнением байт-кода, которая делится на несколько этапов. Эта уязвимость возникает на этапе reference_safety, который отвечает за проверку безопасности ссылок, включая проверку на наличие висячих ссылок и безопасность доступа к изменяемым ссылкам и т.д.

Numen Cyber эксклюзивно обнаруживает еще одну уязвимость высокого риска в языке move

Корень уязвимости заключается в проблеме переполнения целого числа в модуле безопасности. Когда сумма количества параметров функции и количества локальных переменных превышает 256, использование типа u8 для итерации по локальным переменным приводит к переполнению целого числа. Эта уязвимость может быть использована для обхода проверок безопасности, что в конечном итоге может привести к атаке типа "отказ в обслуживании".

Numen Cyber эксклюзивно обнаружил еще один уязвимый участок в языке move

Конкретно, процесс эксплуатации уязвимости выглядит следующим образом:

  1. Создайте блок кода Move с циклом, чтобы он выполнялся несколько раз.

  2. Установите множество параметров функций и локальных переменных так, чтобы их общая сумма превышала 256.

  3. При первом выполнении из-за переполнения целого числа длина новой карты локальных переменных станет очень маленьким значением.

  4. При последующем выполнении попытка доступа к несуществующему индексу локальной переменной вызывает панику и сбой программы.

Numen Cyber эксклюзивно обнаружил еще одну высокую уязвимость языка move

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

Numen Cyber обнаружила еще одну уязвимость в языке move

Для пользователей и разработчиков языка Move рекомендуется внимательно следить за официальными обновлениями безопасности. В то же время, при написании кода на Move также следует обращать внимание на количество параметров функций и локальных переменных, чтобы избежать возникновения таких предельных ситуаций.

Numen Cyber эксклюзивно обнаружил еще одну уязвимость в языке move

С более宏观ной точки зрения, эта уязвимость также показывает, что полагание только на статическую проверку может быть недостаточным для обеспечения полной безопасности. В будущем язык Move может потребовать добавления большего количества динамических проверок во время выполнения, чтобы предотвратить подобные проблемы с безопасностью.

Numen Cyber эксклюзивно обнаружил еще одну уязвимость в языке move

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

Numen Cyber эксклюзивно обнаружил еще одну уязвимость в языке move

Numen Cyber обнаружила еще одну уязвимость в языке move

Numen Cyber эксклюзивно обнаружил еще одну уязвимость в языке move

Numen Cyber эксклюзивно обнаружил еще одну уязвимость в языке move

Numen Cyber эксклюзивно обнаружил еще одну уязвимость в языке move

Numen Cyber эксклюзивно обнаружил еще одну уязвимость в языке move

Numen Cyber эксклюзивно обнаружил еще одну уязвимость в языке move

Numen Cyber обнаружил еще одну высокоопасную уязвимость в языке move

Numen Cyber эксклюзивно обнаружил еще одну уязвимость в языке move

Посмотреть Оригинал
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Награда
  • 9
  • Поделиться
комментарий
0/400
FUDwatchervip
· 07-11 15:51
Я все еще говорил о Move на прошлой неделе, когда произошел убыток из-за переполнения.
Посмотреть ОригиналОтветить0
PriceOracleFairyvip
· 07-10 20:42
омг, двигаюсь, получая убытки от базового переполнения u8... как аудиторы это пропустили, смх
Посмотреть ОригиналОтветить0
ImpermanentLossEnjoyervip
· 07-08 18:08
move это тоже провал, да?
Посмотреть ОригиналОтветить0
FastLeavervip
· 07-08 18:00
Честно говоря, move теперь G.
Посмотреть ОригиналОтветить0
UnluckyLemurvip
· 07-08 17:59
move это действительно невыносимо
Посмотреть ОригиналОтветить0
HackerWhoCaresvip
· 07-08 17:58
Слишком плохо 8, даже переполнение может произойти.
Посмотреть ОригиналОтветить0
TerraNeverForgetvip
· 07-08 17:58
Эх, move тоже провалился.
Посмотреть ОригиналОтветить0
AirdropHunter420vip
· 07-08 17:57
Еще один 0day выпущен
Посмотреть ОригиналОтветить0
Ser_Liquidatedvip
· 07-08 17:50
Это нулевая уязвимость, да?
Посмотреть ОригиналОтветить0
Подробнее
  • Закрепить