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

robot
Генерация тезисов в процессе

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

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

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

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

Основой проверки безопасности является анализ базовых блоков в каждой функции. Базовый блок — это последовательность кода, не содержащая ветвящих инструкций, кроме входных и выходных. Язык Move определяет базовые блоки, обходя байт-код и ища все ветвящие и циклические инструкции.

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

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

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

Уязвимость возникает в функции join_. Когда длина параметров функции плюс длина локальных переменных превышает 256, использование типа u8 для представления локальных переменных приводит к переполнению целого числа. Хотя язык Move имеет механизм проверки количества локальных переменных, он проверяет только количество локальных переменных и не включает длину параметров.

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

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

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

Для демонстрации этой уязвимости исследователи предоставили прототип (PoC). Установив определенные параметры и количество локальных переменных, можно вызвать переполнение целого числа, что приведет к панике системы.

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

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

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

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

MOVE-2.05%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 9
  • Репост
  • Поделиться
комментарий
0/400
GateUser-aa7df71evip
· 08-19 18:48
Еще один проект должен упасть. Переполнение обязательно приведет к краху.
Посмотреть ОригиналОтветить0
TokenVelocityvip
· 08-17 11:11
Две года работы, чтобы прокормить всех, разорив себя, и только я один несу бремя, 3000 дней, мечта о предпринимательстве проснулась.
Посмотреть ОригиналОтветить0
GateUser-0717ab66vip
· 08-16 22:28
Кто переполнит, тот с*ка
Посмотреть ОригиналОтветить0
ForumLurkervip
· 08-16 22:27
move опять что-то замышляет?
Посмотреть ОригиналОтветить0
TokenTaxonomistvip
· 08-16 22:23
статистически говоря, еще один эволюционный тупик для move... не удивлён, если честно
Посмотреть ОригиналОтветить0
SolidityStrugglervip
· 08-16 22:20
Выход за пределы буфера действительно раздражает...
Посмотреть ОригиналОтветить0
RiddleMastervip
· 08-16 22:10
Снова уязвимость переполнения, и это никогда не закончится.
Посмотреть ОригиналОтветить0
  • Закрепить