TechFlow Logo
Войти/ Регистрация
Газ ETH
Gwei
Страх
gas
Проект TonBit компании BitsLab вновь обнаружил критическую уязвимость в виртуальной машине TON и получил благодарность от официальных разработчиков TON.

Проект TonBit компании BitsLab вновь обнаружил критическую уязвимость в виртуальной машине TON и получил благодарность от официальных разработчиков TON.

2025.07.09
Поделиться
TonBit, выступая в качестве ключевого суббренда BitsLab, является экспертом по безопасности и одним из ранних строителей экосистемы TON.

Автор: TonBit

Введение:

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

Ссылка на детали исправления уязвимости и благодарности TonBit со стороны официальных разработчиков TON:

https://github.com/ton-blockchain/ton/releases/tag/v2025.06

Недавно TonBit (подразделение BitsLab) обнаружила серьезную угрозу безопасности в последнем исходном коде TVM (ветка master / TON v2025.04) —— инструкция INMSGPARAM не проверяет параметры сообщения на наличие нулевых указателей, что может вызвать сбой VM 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 продолжит обеспечивать безопасность блокчейн-проектов и способствовать дальнейшему развитию технологий и экосистемы.

Присоединяйтесь к официальному сообществу TechFlow

В избранное
Поделиться
Автор
TonBit
X@tonbit_