
Проект TonBit компании BitsLab вновь обнаружил критическую уязвимость в виртуальной машине TON и получил благодарность от официальных разработчиков 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
Telegram:https://t.me/TechFlowDaily
X (Twitter):https://x.com/TechFlowPost
X (Twitter) EN:https://x.com/BlockFlow_News















