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 の TonBit が再び TON 仮想マシンの重要な脆弱性を発見し、TON 公式から感謝の意を表されました。
著者: TonBit
紹介:
BitsLabのTonBitは再びTON仮想マシンの重要な脆弱性を発見し、TON公式から感謝の意を表されました:INMSGPARAM命令はメッセージパラメータを処理する際にヌルポインターチェックを行っておらず、TON仮想マシンがクラッシュする可能性があります。
TON公式のバグ修正および感謝 TonBitの詳細リンク:
最近、BitsLab の TonBit は最新の TVM ソースコード(master ブランチ / TON v2025.04)において、深刻なセキュリティホールを発見しました——INMSGPARAM 命令がメッセージパラメータを処理する際にヌルポインタのチェックを行っておらず、TON 仮想マシンがクラッシュする可能性があります。この脆弱性は TVM の深層呼び出しプロセスにも潜んでおり、攻撃者は特別なメッセージパラメータを構築することによって、VM が実行時にヌルポインタの参照をトリガーし、実行が中断されることを引き起こす可能性があります。これにより、契約の実行の可用性と安定性に深刻な影響を及ぼします。以下の内容には技術的な詳細が含まれており、開発者が深く評価し防止するための参考としてください。
私たちは TVM11 のローンチ前にこの脆弱性を発見し、直ちに Ton Core に報告しました。その結果、この脆弱性がチェーン上の資産に対して安全リスクを引き起こすことを回避しました。Ton Core は私たちの報告を真剣に分析し、正式なローンチ前にこの脆弱性を修正し、私たちに報酬と感謝の意を示しました。私たちは Ton Core の専門性と約束を守る姿勢に心から感謝しています。
影響を受けるコード(crypto/vm/tonops.cppにあります)は次のとおりです:
根本原因:
この行のコード
参照 t = get_param(st, inmsgparams_idx).as_tuple();
変数 t が nullptr であるかどうかのチェックが行われていません。c7 レジスタのスロット 0 を Tuple 型ではない第 17 要素のタプルとして設定すると、as_tuple() は nullptr を返します。この nullptr t が tuple_index に渡されると、nullptr の逆参照が発生し、仮想マシンがクラッシュします。この重大なバグは、グローバルバージョン 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 の実行可能ファイルをコンパイルして実行します。
クラッシュ:
仮想マシンはヌルポインタの逆参照によりクラッシュします:
まとめると、BitsLab の TonBit は「安全性の深耕、責任ある開示」という原則を常に守り、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はブロックチェーンセキュリティを守り続け、技術とエコシステムの持続的な発展を推進していきます。