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

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

Нещодавно було виявлено серйозну вразливість переповнення цілого числа в модулі безпеки посилань мови Move. Ця вразливість може призвести до атаки відмови в обслуговуванні, що становить потенційну загрозу для безпеки мови Move.

Мова Move перед виконанням байт-коду проводить перевірку коду, яка складається з кількох етапів. Ця уразливість виникає на етапі reference_safety, який відповідає за перевірку безпеки посилань, включаючи перевірку на наявність висячих посилань, безпечність доступу до змінних посилань тощо.

Numen Cyber ексклюзивно виявив ще одну критичну вразливість у мові move

Джерело вразливості полягає в проблемі переповнення цілих чисел у безпечному модулі. Коли сума кількості параметрів функції та кількості локальних змінних перевищує 256, використання типу u8 для ітерації по локальних змінних призводить до переповнення. Цю уразливість можна використати для обходу перевірок безпеки, що в кінцевому підсумку може призвести до атаки типу "відмова в обслуговуванні".

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

Конкретно, процес експлуатації уразливості виглядає так:

  1. Створіть блок коду Move з циклом, щоб він виконувався кілька разів.

  2. Встановіть велику кількість параметрів функцій і локальних змінних, щоб їхня сума перевищила 256.

  3. Під час першого виконання через переповнення цілого числа довжина нового locals map стане дуже маленьким значенням.

  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
Дізнатися більше
  • Закріпити