BitsLab a de nouveau découvert une vulnérabilité clé dans la Machine virtuelle TON de TonBit et a reçu des remerciements de la part de l'équipe officielle de TON.
BitsLab sous TonBit a de nouveau découvert une vulnérabilité clé de la machine virtuelle TON et a reçu des remerciements officiels de TON : l'instruction INMSGPARAM n'effectue pas de vérification de pointeur nul lors du traitement des paramètres de message, ce qui pourrait entraîner un crash de la machine virtuelle TON.
Lien de détails sur la correction de vulnérabilité officielle de TON et remerciements à TonBit :
Récemment, TonBit, une filiale de BitsLab, a découvert une grave vulnérabilité de sécurité dans le dernier code source TVM (branche master / TON v2025.04) — l'instruction INMSGPARAM ne vérifie pas les pointeurs nuls lors du traitement des paramètres de message, ce qui peut entraîner un plantage de la machine virtuelle TON. Cette faille est également profondément enfouie dans le processus d'appel interne de la TVM, un attaquant peut provoquer une déférence de pointeur nul en construisant des paramètres de message spéciaux, ce qui entraîne une interruption de l'exécution, affectant gravement la disponibilité et la stabilité de l'exécution des contrats. Le contenu suivant conserve les détails techniques, permettant aux développeurs d'analyser et de prévenir en profondeur.
Nous avons découvert cette vulnérabilité avant le lancement de TVM11 et avons immédiatement signalé le problème à Ton Core, évitant ainsi tout risque de sécurité pour les actifs sur la chaîne. Ton Core a soigneusement analysé notre rapport, a corrigé la vulnérabilité avant le lancement officiel et nous a attribué une récompense ainsi qu'une reconnaissance. Nous remercions sincèrement Ton Core pour son professionnalisme et son respect des engagements.
Le code affecté (situé dans crypto/vm/tonops.cpp) est le suivant :
Cause fondamentale :
Cette ligne de code
Ref t = get_param(st, inmsgparams_idx).as_tuple();
Aucune vérification n'a été effectuée pour savoir si la variable t est nullptr. Si le slot 0 du registre c7 est configuré pour un élément 17 qui n'est pas de type Tuple, as_tuple() renverra un pointeur nul. Lorsque ce pointeur nul t est passé à tuple_index, cela déclenchera une déréférencement de pointeur nul, entraînant un crash de la machine virtuelle. Ce bug critique peut être reproduit de manière stable dans la version globale 11 (Global Version 11).
Code POC :
Pour faciliter les tests locaux (car global_version est généralement configuré par la chaîne), nous avons modifié l'initialisation de la machine virtuelle dans la fonction run_vm_code, en forçant global_version à être 11 :
Copiez le code PoC dans le fichier crypto/test/vm.cpp.
Modifiez run_vm_code comme indiqué ci-dessus et définissez global_version sur 11.
Compiler et exécuter le fichier exécutable test-vm.
Effondrement :
La machine virtuelle s'est écrasée en raison d'une dereferencement de pointeur nul :
En résumé, TonBit, une filiale de BitsLab, a toujours adhéré au principe de "profondément s'engager dans la sécurité et la divulgation responsable", en continuant à explorer et à corriger les vulnérabilités clés dans le code source du noyau de la machine virtuelle TON. Des menaces de migration non atomiques des instructions RUNVM à ce problème de déréférencement de pointeur nul avec l'instruction INMSGPARAM, TonBit a toujours soumis des rapports à Ton Core et a assisté à la réparation avec une expertise technique professionnelle et une rapidité de réponse efficace, garantissant non seulement la sécurité des actifs sur la chaîne, mais aussi améliorant la stabilité et la fiabilité du TVM. À l'avenir, TonBit continuera de collaborer étroitement avec Ton Core et la communauté pour construire une ligne de défense de sécurité Web3 plus solide.
À propos de TonBit
TonBit, en tant que marque sous-jacente de BitsLab, est l'expert en sécurité et un constructeur précoce de l'écosystème TON. En tant que principal fournisseur de garanties de sécurité de la blockchain TON, TonBit se concentre sur des audits de sécurité complets, y compris les audits des langages Tact et FunC, garantissant que les projets basés sur TON disposent d'intégrité et de résilience. À ce jour, TonBit a réussi à auditer plusieurs projets bien connus, y compris Catizen, Algebra, UTonic, et a découvert plusieurs vulnérabilités clés, démontrant notre capacité exceptionnelle dans le domaine de la sécurité blockchain. De plus, TonBit a également organisé avec succès le concours TON CTF, attirant de nombreux participants et recevant une large attention, consolidant davantage sa position d'expert en sécurité dans l'écosystème TON. À l'avenir, TonBit continuera à garantir la sécurité de la blockchain et à promouvoir le développement continu de la technologie et de l'écosystème.
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.
BitsLab a de nouveau découvert une vulnérabilité clé dans la Machine virtuelle TON de TonBit et a reçu des remerciements de la part de l'équipe officielle de TON.
Auteur : TonBit
Introduction :
BitsLab sous TonBit a de nouveau découvert une vulnérabilité clé de la machine virtuelle TON et a reçu des remerciements officiels de TON : l'instruction INMSGPARAM n'effectue pas de vérification de pointeur nul lors du traitement des paramètres de message, ce qui pourrait entraîner un crash de la machine virtuelle TON.
Lien de détails sur la correction de vulnérabilité officielle de TON et remerciements à TonBit :
Récemment, TonBit, une filiale de BitsLab, a découvert une grave vulnérabilité de sécurité dans le dernier code source TVM (branche master / TON v2025.04) — l'instruction INMSGPARAM ne vérifie pas les pointeurs nuls lors du traitement des paramètres de message, ce qui peut entraîner un plantage de la machine virtuelle TON. Cette faille est également profondément enfouie dans le processus d'appel interne de la TVM, un attaquant peut provoquer une déférence de pointeur nul en construisant des paramètres de message spéciaux, ce qui entraîne une interruption de l'exécution, affectant gravement la disponibilité et la stabilité de l'exécution des contrats. Le contenu suivant conserve les détails techniques, permettant aux développeurs d'analyser et de prévenir en profondeur.
Nous avons découvert cette vulnérabilité avant le lancement de TVM11 et avons immédiatement signalé le problème à Ton Core, évitant ainsi tout risque de sécurité pour les actifs sur la chaîne. Ton Core a soigneusement analysé notre rapport, a corrigé la vulnérabilité avant le lancement officiel et nous a attribué une récompense ainsi qu'une reconnaissance. Nous remercions sincèrement Ton Core pour son professionnalisme et son respect des engagements.
Le code affecté (situé dans crypto/vm/tonops.cpp) est le suivant :
Cause fondamentale :
Cette ligne de code
Ref t = get_param(st, inmsgparams_idx).as_tuple();
Aucune vérification n'a été effectuée pour savoir si la variable t est nullptr. Si le slot 0 du registre c7 est configuré pour un élément 17 qui n'est pas de type Tuple, as_tuple() renverra un pointeur nul. Lorsque ce pointeur nul t est passé à tuple_index, cela déclenchera une déréférencement de pointeur nul, entraînant un crash de la machine virtuelle. Ce bug critique peut être reproduit de manière stable dans la version globale 11 (Global Version 11).
Code POC :
Pour faciliter les tests locaux (car global_version est généralement configuré par la chaîne), nous avons modifié l'initialisation de la machine virtuelle dans la fonction run_vm_code, en forçant global_version à être 11 :
Copiez le code PoC dans le fichier crypto/test/vm.cpp.
Modifiez run_vm_code comme indiqué ci-dessus et définissez global_version sur 11.
Compiler et exécuter le fichier exécutable test-vm.
Effondrement :
La machine virtuelle s'est écrasée en raison d'une dereferencement de pointeur nul :
En résumé, TonBit, une filiale de BitsLab, a toujours adhéré au principe de "profondément s'engager dans la sécurité et la divulgation responsable", en continuant à explorer et à corriger les vulnérabilités clés dans le code source du noyau de la machine virtuelle TON. Des menaces de migration non atomiques des instructions RUNVM à ce problème de déréférencement de pointeur nul avec l'instruction INMSGPARAM, TonBit a toujours soumis des rapports à Ton Core et a assisté à la réparation avec une expertise technique professionnelle et une rapidité de réponse efficace, garantissant non seulement la sécurité des actifs sur la chaîne, mais aussi améliorant la stabilité et la fiabilité du TVM. À l'avenir, TonBit continuera de collaborer étroitement avec Ton Core et la communauté pour construire une ligne de défense de sécurité Web3 plus solide.
À propos de TonBit
TonBit, en tant que marque sous-jacente de BitsLab, est l'expert en sécurité et un constructeur précoce de l'écosystème TON. En tant que principal fournisseur de garanties de sécurité de la blockchain TON, TonBit se concentre sur des audits de sécurité complets, y compris les audits des langages Tact et FunC, garantissant que les projets basés sur TON disposent d'intégrité et de résilience. À ce jour, TonBit a réussi à auditer plusieurs projets bien connus, y compris Catizen, Algebra, UTonic, et a découvert plusieurs vulnérabilités clés, démontrant notre capacité exceptionnelle dans le domaine de la sécurité blockchain. De plus, TonBit a également organisé avec succès le concours TON CTF, attirant de nombreux participants et recevant une large attention, consolidant davantage sa position d'expert en sécurité dans l'écosystème TON. À l'avenir, TonBit continuera à garantir la sécurité de la blockchain et à promouvoir le développement continu de la technologie et de l'écosystème.