BitsLab thuộc TonBit một lần nữa phát hiện lỗ hổng quan trọng trong máy ảo TON và nhận được lời cảm ơn từ TON chính thức.

robot
Đang tạo bản tóm tắt

Tác giả: TonBit

Giới thiệu:

BitsLab thuộc TonBit một lần nữa phát hiện ra lỗ hổng quan trọng trong máy ảo TON và đã nhận được lời cảm ơn từ TON: Lệnh INMSGPARAM không kiểm tra con trỏ null khi xử lý các tham số tin nhắn, có thể dẫn đến sự cố máy ảo TON.

Liên kết chi tiết về sửa lỗi chính thức và cảm ơn TonBit TON:

Gần đây, TonBit thuộc BitsLab đã phát hiện một lỗ hổng bảo mật nghiêm trọng trong mã nguồn TVM mới nhất (nhánh master / TON v2025.04) — lệnh INMSGPARAM khi xử lý tham số tin nhắn không thực hiện kiểm tra con trỏ rỗng, có thể dẫn đến sự cố vỡ VM TON. Lỗ hổng này cũng ẩn sâu trong quy trình gọi sâu của TVM, kẻ tấn công có thể tạo ra các tham số tin nhắn đặc biệt khiến VM khi thực thi kích hoạt dereference con trỏ null, từ đó gây ra sự gián đoạn trong quá trình thực thi, ảnh hưởng nghiêm trọng đến khả năng sử dụng và tính ổn định của việc thực thi hợp đồng. Nội dung dưới đây giữ lại các chi tiết kỹ thuật, dành cho các nhà phát triển để xem xét và phòng ngừa.

Chúng tôi đã phát hiện ra lỗ hổng này trước khi ra mắt trên TVM11 và ngay lập tức báo cáo cho Ton Core, từ đó tránh được rủi ro an ninh cho bất kỳ tài sản nào trên chuỗi. Ton Core đã phân tích nghiêm túc báo cáo của chúng tôi, đã sửa lỗ hổng trước khi chính thức ra mắt và đã phát thưởng cũng như gửi lời cảm ơn đến chúng tôi. Chúng tôi chân thành cảm ơn tinh thần chuyên nghiệp và thái độ giữ lời hứa của Ton Core.

Mã bị ảnh hưởng (nằm ở crypto/vm/tonops.cpp) như sau:

Nguyên nhân gốc rễ:

Dòng mã này

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

Chưa kiểm tra xem biến t có phải là nullptr hay không. Nếu cấu hình khe 0 của thanh ghi c7 thành một tuple mà phần tử thứ 17 không phải là kiểu Tuple, as_tuple() sẽ trả về con trỏ rỗng. Khi con trỏ rỗng t được truyền vào tuple_index, sẽ gây ra việc giải tham chiếu con trỏ rỗng, dẫn đến sự cố máy ảo. Lỗi nghiêm trọng này có thể tái hiện ổn định trong phiên bản toàn cầu 11 (Global Version 11).

Mã POC:

Để thuận tiện cho việc thử nghiệm tại địa phương (bởi vì global_version thường được cấu hình bởi chuỗi), chúng tôi đã sửa đổi khởi tạo của máy ảo trong hàm run_vm_code, buộc global_version được thiết lập thành 11:

Sao chép mã PoC vào tệp crypto/test/vm.cpp.

Theo cách trên, chỉnh sửa run_vm_code, đặt global_version thành 11.

Biên dịch và chạy tệp thực thi test-vm.

Sụp đổ:

Máy ảo có thể bị sập do tham chiếu đến con trỏ rỗng:

Tóm lại, TonBit thuộc BitsLab luôn tuân thủ nguyên tắc "tập trung vào an toàn, công bố trách nhiệm", liên tục khai thác và sửa chữa các lỗ hổng quan trọng trong mã nguồn chính của máy ảo TON. Từ nguy cơ di chuyển không nguyên tử của lệnh RUNVM đến vấn đề tham chiếu không hợp lệ của lệnh INMSGPARAM lần này, TonBit đã bằng sức mạnh kỹ thuật chuyên nghiệp và tốc độ phản ứng hiệu quả, ngay lập tức gửi báo cáo đến Ton Core và hỗ trợ sửa chữa, không chỉ bảo đảm an toàn cho tài sản trên chuỗi mà còn thúc đẩy sự ổn định và độ tin cậy của TVM. Trong tương lai, TonBit sẽ tiếp tục hợp tác chặt chẽ với Ton Core và cộng đồng để cùng xây dựng một hàng rào an ninh Web3 vững chắc hơn.

Về TonBit

TonBit là thương hiệu con cốt lõi của BitsLab, là chuyên gia về an ninh và là người xây dựng sớm trong hệ sinh thái TON. Là nhà cung cấp chính về bảo đảm an ninh cho blockchain TON, TonBit tập trung vào việc kiểm toán an ninh toàn diện, bao gồm cả việc kiểm toán ngôn ngữ Tact và FunC, đảm bảo rằng các dự án dựa trên TON có tính toàn vẹn và linh hoạt. Đến nay, TonBit đã thành công trong việc kiểm toán nhiều dự án nổi tiếng như Catizen, Algebra, UTonic và đã phát hiện ra nhiều lỗ hổng quan trọng, cho thấy khả năng xuất sắc của chúng tôi trong lĩnh vực an ninh blockchain. Hơn nữa, TonBit cũng đã tổ chức thành công cuộc thi TON CTF, thu hút nhiều người tham gia và nhận được sự chú ý rộng rãi, củng cố thêm vị thế chuyên gia an ninh của mình trong hệ sinh thái TON. Trong tương lai, TonBit sẽ tiếp tục bảo vệ an ninh blockchain, thúc đẩy sự phát triển bền vững của công nghệ và hệ sinh thái.

Xem bản gốc
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.
  • Phần thưởng
  • Bình luận
  • Chia sẻ
Bình luận
0/400
Không có bình luận
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)