Уязвимость переполнения целых чисел в Move языке привела к риску崩崩 узла и привлекла следовать.

Язык Move снова столкнулся с уязвимостью: переполнение целого числа может привести к сбою узла

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

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

Язык Move выполняет проверку кода перед выполнением байт-кода, которая делится на 4 этапа. Обнаруженная уязвимость возникла на этапе проверки безопасности (reference_safety). На этом этапе анализируются базовые блоки в функции и проверяется законность операций ссылок.

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

В процессе верификации будет поддерживаться структура AbstractState, содержащая локальные переменные (locals) и граф заимствований (borrow graph). При анализе базового блока будут выполняться инструкции внутри блока для генерации post state, после чего они будут объединены с pre state для обновления состояния.

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

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

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

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

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

Исследователи предоставили концептуальное доказательство ( PoC ), которое может вызвать панику при втором анализе, установив 264 переменные locals. Это показывает, что язык Move недостаточно безопасен на этапе выполнения.

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

Этот уязвимость снова подчеркивает, что даже язык Move, акцентирующий внимание на безопасности, может иметь уязвимости. Рекомендуется разработчикам языка 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

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

MOVE0.34%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 4
  • Поделиться
комментарий
0/400
CoconutWaterBoyvip
· 17ч назад
move снова провалился, давно следовало сменить
Посмотреть ОригиналОтветить0
SchrodingerWalletvip
· 17ч назад
move снова провалился.
Посмотреть ОригиналОтветить0
0xDreamChaservip
· 17ч назад
move снова упал? Выпуск не достаточно быстрый
Посмотреть ОригиналОтветить0
GasFeeCryvip
· 17ч назад
move опять-опять-опять случилась проблема
Посмотреть ОригиналОтветить0
  • Закрепить