Cơ chế bảo mật tham chiếu ngôn ngữ Move lộ ra lỗ hổng tràn số nguyên, có thể dẫn đến tấn công từ chối dịch vụ

Cơ chế an toàn trích dẫn của ngôn ngữ Move tồn tại lỗ hổng tràn số nguyên

Gần đây, các nhà nghiên cứu an ninh đã phát hiện ra một lỗ hổng tràn số nguyên mới khi phân tích sâu ngôn ngữ Move. Lỗ hổng này xuất hiện trong quá trình xác minh an toàn tham chiếu của ngôn ngữ Move, có thể dẫn đến tấn công từ chối dịch vụ.

Numen Cyber phát hiện độc quyền một lỗ hổng nghiêm trọng khác trong ngôn ngữ move

Ngôn ngữ Move sẽ thực hiện xác minh mã trước khi thực thi bytecode, chia thành 4 bước. Lỗ hổng này tồn tại trong giai đoạn xác minh an toàn tham chiếu (reference_safety). Mục đích chính của xác minh an toàn tham chiếu là đảm bảo không có tham chiếu lơ lửng, truy cập an toàn cho tham chiếu biến, truy cập an toàn cho tham chiếu lưu trữ toàn cầu, v.v.

Numen Cyber phát hiện độc quyền lỗ hổng nghiêm trọng trong ngôn ngữ move

Quá trình xác thực sẽ duyệt qua từng chỉ thị bytecode của khối cơ bản. Khối cơ bản là đoạn mã không có chỉ thị phân nhánh ngoài điểm vào và điểm ra. Ngôn ngữ Move xác định khối cơ bản bằng cách phân tích chỉ thị phân nhánh và chỉ thị vòng lặp.

Numen Cyber phát hiện độc quyền lỗ hổng nghiêm trọng khác trong ngôn ngữ move

Trích dẫn xác thực an toàn sử dụng cấu trúc AbstractState để theo dõi các biến cục bộ và mối quan hệ tham chiếu. Nó bao gồm hai phần locals và đồ thị mượn. Trong quá trình xác thực, trạng thái trước và sau khi thực hiện sẽ được so sánh và cập nhật hợp nhất.

Numen Cyber phát hiện độc quyền một lỗ hổng nghiêm trọng khác trong ngôn ngữ move

Lỗ hổng xuất hiện trong hàm join_ ở trạng thái hợp nhất. Hàm này sử dụng kiểu u8 để lặp qua locals, nhưng nếu số lượng tham số và biến cục bộ vượt quá 256 sẽ dẫn đến tràn số nguyên. Mặc dù có logic kiểm tra số lượng locals, nhưng không xem xét chiều dài tham số.

Numen Cyber phát hiện độc quyền lỗ hổng cao nguy hiểm khác của ngôn ngữ move

Numen Cyber phát hiện độc quyền một lỗ hổng nguy hiểm khác trong ngôn ngữ move

Numen Cyber phát hiện độc quyền lỗ hổng nghiêm trọng khác trong ngôn ngữ move

Numen Cyber phát hiện độc quyền một lỗ hổng nghiêm trọng khác trong ngôn ngữ move

Numen Cyber phát hiện độc quyền lỗ hổng nghiêm trọng mới trong ngôn ngữ move

Numen Cyber phát hiện độc quyền lỗ hổng nghiêm trọng trong ngôn ngữ move

Numen Cyber phát hiện độc quyền lỗ hổng nghiêm trọng mới trong ngôn ngữ move

Numen Cyber phát hiện độc quyền một lỗ hổng nghiêm trọng khác của ngôn ngữ move

Numen Cyber phát hiện độc quyền một lỗ hổng nghiêm trọng khác trong ngôn ngữ move

Numen Cyber phát hiện độc quyền lỗ hổng nguy hiểm khác trong ngôn ngữ move

Kẻ tấn công có thể tạo ra một khối cơ bản lặp lại, tận dụng sự tràn này để thay đổi trạng thái. Khi thực hiện lại, việc truy cập vào chỉ số locals không tồn tại sẽ dẫn đến panic, gây ra từ chối dịch vụ.

Numen Cyber phát hiện độc quyền lỗ hổng nghiêm trọng khác trong ngôn ngữ move

Lỗ hổng này phản ánh rằng ngay cả những ngôn ngữ an toàn kiểu tĩnh cũng có thể tồn tại rủi ro an ninh. Đề xuất ngôn ngữ Move nên tăng cường thêm các kiểm tra an toàn trong thời gian chạy, không chỉ dựa vào giai đoạn xác minh. Đồng thời cũng chỉ ra tầm quan trọng của việc kiểm tra mã.

MOVE-2.13%
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
  • Phần thưởng
  • 4
  • Chia sẻ
Bình luận
0/400
AllTalkLongTradervip
· 5giờ trước
Mã lại ra lò rồi
Xem bản gốcTrả lời0
WhaleWatchervip
· 07-31 00:57
Bản vá đã trên đường chưa?
Xem bản gốcTrả lời0
BlockDetectivevip
· 07-31 00:49
Sửa chữa rất kịp thời.
Xem bản gốcTrả lời0
TokenGuruvip
· 07-31 00:41
Những nguy cơ không thể xem nhẹ
Xem bản gốcTrả lời0
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)