BitsLab підрозділ TonBit знову виявив ключову уразливість Віртуальної машини TON та отримав подяку від офіційних представників TON

robot
Генерація анотацій у процесі

Автор: TonBit

Вступ:

Компанія TonBit, що належить BitsLab, знову виявила ключову уразливість в віртуальній машині TON і отримала подяку від офіційного представництва TON: інструкція INMSGPARAM не перевіряє наявність нульового вказівника під час обробки параметрів повідомлення, що може призвести до збоїв віртуальної машини TON.

Офіційне виправлення вразливостей TON та подяка. Посилання на деталі TonBit:

Нещодавно, у останньому виході коду TVM (гілка master / TON v2025.04) компанії BitsLab під брендом TonBit було виявлено серйозну загрозу безпеці — інструкція INMSGPARAM не перевіряє вказівники на нуль під час обробки параметрів повідомлення, що може призвести до збоїв у віртуальній машині TON. Ця вразливість також глибоко закладена у процесі глибоких викликів TVM, тому зловмисники можуть, створивши спеціальні параметри повідомлення, викликати віртуальну машину на виконанні з посиланням на нульовий вказівник, що призведе до переривання виконання та серйозно вплине на доступність і стабільність виконання контрактів. Наступний вміст зберігає технічні деталі для глибшого аналізу та запобігання розробниками.

Ми виявили цю уразливість ще до запуску TVM11 і одразу повідомили про неї Ton Core, що дозволило уникнути безпекових ризиків для будь-яких активів у мережі. Ton Core уважно проаналізував наш звіт, виправив цю уразливість до офіційного запуску та виплатив нам винагороду і подяку. Ми щиро вдячні Ton Core за їхній професіоналізм і дотримання зобов'язань.

Код, що потрапив під вплив (розташований у crypto/vm/tonops.cpp), виглядає так:

Основна причина:

Цей рядок коду

Ref t = get_param(st, inmsgparams_idx).as_tuple();

Не була перевірена змінна t на наявність значення nullptr. Якщо слот 0 реєстратора c7 налаштувати на кортеж, елементом 17 якого не є тип Tuple, as_tuple() поверне нульовий покажчик. Коли цей нульовий покажчик t передається в tuple_index, це призведе до розіменування нульового покажчика, що викличе збої віртуальної машини. Ця серйозна помилка стабільно відтворюється в глобальній версії 11 (Global Version 11).

POC код:

Для зручності локального тестування (оскільки global_version зазвичай налаштовується мережею), ми змінили ініціалізацію віртуальної машини в функції run_vm_code, примусово встановивши global_version на 11:

Скопіюйте код PoC у файл crypto/test/vm.cpp.

Змініть run_vm_code згідно з наведеним вище способом, встановіть global_version на 11.

Скомпілювати та виконати виконуваний файл test-vm.

Злам

Віртуальна машина може зламатися через розіменування нульового покажчика:

Підсумовуючи, TonBit, що належить BitsLab, завжди дотримується принципів "глибинної безпеки та відповідального розкриття", постійно виявляючи та виправляючи ключові вразливості в основному коді віртуальної машини TON. Від небезпеки неатомної міграції інструкції RUNVM до проблеми розіменування нульового покажчика в цій інструкції INMSGPARAM, TonBit з професійними технічними здібностями та швидкою реакцією в першу чергу подає звіт до Ton Core та допомагає в ремонті, що не лише ефективно забезпечує безпеку активів на ланцюгу, але й сприяє підвищенню стабільності та надійності TVM. У майбутньому TonBit продовжить тісно співпрацювати з Ton Core та спільнотою, щоб спільно побудувати більш міцний бар'єр безпеки Web3.

Про компанію TonBit

TonBit, як основний підбренд BitsLab, є експертом з безпеки та раннім будівельником у екосистемі TON. Як основний постачальник забезпечення безпеки блокчейну TON, TonBit зосереджується на всебічному аудиті безпеки, включаючи аудит мов Tact і FunC, щоб забезпечити цілісність і стійкість проектів на основі TON. На сьогоднішній день TonBit успішно провів аудит кількох відомих проектів, таких як Catizen, Algebra, UTonic, і виявив кілька ключових вразливостей, демонструючи нашу видатну здатність у сфері безпеки блокчейну. Крім того, TonBit успішно провів змагання TON CTF, яке привабило безліч учасників і отримало широке визнання, що ще більше зміцнило його статус експерта з безпеки в екосистемі TON. У майбутньому TonBit продовжить забезпечувати безпеку блокчейну, сприяючи постійному розвитку технологій та екосистеми.

Переглянути оригінал
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.
  • Нагородити
  • Прокоментувати
  • Поділіться
Прокоментувати
0/400
Немає коментарів
  • Закріпити