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

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

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

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

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

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

Процес верифікації проходитиме через байт-код інструкцій кожного базового блоку. Базовий блок - це послідовність коду, яка не має інструкцій гілкування, окрім входу та виходу. Мова Move визначає базові блоки, аналізуючи інструкції гілкування та цикли.

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

Цитування безпечного підтвердження використовує структуру AbstractState для відстеження локальних змінних і відносин запозичення. Вона складається з двох частин: locals та borrow graph. Під час перевірки порівнюють стани до і після виконання, а також об'єднують оновлення.

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

Уразливість виникає в функції join_ в стані злиття. Ця функція використовує тип u8 для ітерації через locals, але якщо кількість параметрів та локальних змінних перевищує 256, це призводить до переповнення цілого числа. Хоча є логіка перевірки кількості locals, але не враховується довжина параметра.

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

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

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

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

Ця вразливість показує, що навіть мови з статичною типізацією можуть мати проблеми з безпекою. Рекомендується, щоб мова Move додала більше перевірок безпеки під час виконання, а не покладалася лише на етап валідації. Це також підкреслює важливість аудиту коду.

MOVE-4.85%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 3
  • Поділіться
Прокоментувати
0/400
WhaleWatchervip
· 07-31 00:57
Патч вже в дорозі?
Переглянути оригіналвідповісти на0
BlockDetectivevip
· 07-31 00:49
Виправлення дуже своєчасне!
Переглянути оригіналвідповісти на0
TokenGuruvip
· 07-31 00:41
Небезпека не може бути проігнорована
Переглянути оригіналвідповісти на0
  • Закріпити