Lỗ hổng lưu trữ tạm thời gây ra cuộc tấn công 300.000 đô la vào các dự án trên chuỗi
Vào ngày 30 tháng 3 năm 2025, một dự án giao dịch đòn bẩy trên chuỗi Ethereum đã bị tấn công, gây thiệt hại hơn 300.000 đô la Mỹ tài sản. Đội ngũ an ninh đã tiến hành phân tích sâu về sự kiện này, dưới đây là những phát hiện liên quan:
Bối cảnh sự kiện
Kẻ tấn công đã khai thác một lỗ hổng trong tính năng lưu trữ tạm thời được giới thiệu trong phiên bản Solidity 0.8.24, (transient storage). Lưu trữ tạm thời là một vị trí lưu trữ dữ liệu mới, nhằm cung cấp cách lưu trữ tạm thời hiệu quả về chi phí và có hiệu lực trong thời gian giao dịch. Nó được thực hiện thông qua các lệnh TSTORE và TLOAD, với các đặc điểm như chi phí gas thấp, tính bền vững trong giao dịch và tự động xóa.
Nguồn gốc của cuộc tấn công
Nguyên nhân cơ bản của cuộc tấn công là giá trị được lưu trữ tạm thời bằng tstore trong hàm không được xóa sau khi kết thúc cuộc gọi hàm. Kẻ tấn công đã lợi dụng đặc điểm này để tạo ra các địa chỉ độc hại cụ thể nhằm vượt qua kiểm tra quyền hạn, từ đó chuyển ra token trong dự án.
Quá trình tấn công
Tạo token độc hại và thiết lập bể giao dịch: Kẻ tấn công tạo ra hai token độc hại A và B, và tạo bể cho hai token này trên một DEX và bơm thanh khoản.
Khởi tạo thị trường giao dịch đòn bẩy: Kẻ tấn công gọi hàm initialize của hợp đồng dự án, sử dụng token A làm tài sản thế chấp và token B làm token nợ để tạo ra thị trường giao dịch đòn bẩy.
Đúc token đòn bẩy: Kẻ tấn công gọi hàm mint, gửi token nợ B để đúc token đòn bẩy. Trong quá trình này, địa chỉ bể DEX và số lượng đúc được lưu trữ tạm thời.
Tạo hợp đồng độc hại: Kẻ tấn công tạo một địa chỉ với hợp đồng độc hại có số lượng đúc giống như trong bộ nhớ tạm thời.
Vượt qua xác thực quyền: Kẻ tấn công gọi hàm callback của hợp đồng dự án thông qua hợp đồng độc hại, do giá trị trong bộ nhớ tạm thời chưa được xóa, dẫn đến việc kiểm tra quyền bị vượt qua sai.
Chuyển tài sản: Cuối cùng, kẻ tấn công đã gọi trực tiếp hàm callback của hợp đồng dự án thông qua việc tấn công hợp đồng, chuyển các token khác trong hợp đồng (như WBTC, WETH) ra ngoài để thu lợi.
Đánh giá thiệt hại
Theo dữ liệu từ công cụ phân tích trên chuỗi, kẻ tấn công đã đánh cắp tài sản trị giá khoảng 300.000 đô la, bao gồm 17.814,8626 USDC, 1,4085 WBTC và 119,871 WETH. Các tài sản này sau đó đã được đổi và chuyển vào một hệ thống ẩn danh.
Đề xuất an toàn
Sử dụng bộ nhớ tạm thời hợp lý: Các dự án nên ngay lập tức sử dụng tstore(key, 0) để xóa giá trị trong bộ nhớ tạm thời sau khi kết thúc gọi hàm theo logic kinh doanh.
Tăng cường kiểm toán hợp đồng: Cần thực hiện kiểm toán và thử nghiệm an toàn toàn diện đối với mã hợp đồng của dự án để phát hiện và khắc phục các lỗ hổng tiềm ẩn.
Hoàn thiện xác thực quyền: Thực hiện cơ chế xác thực đa lớp trong các thao tác quan trọng, tránh việc xác thực đơn lẻ bị vượt qua.
Giám sát hoạt động bất thường: Triển khai hệ thống giám sát thời gian thực, kịp thời phát hiện và phản ứng với các giao dịch nghi ngờ.
Sự kiện lần này một lần nữa nhấn mạnh tầm quan trọng của việc thực hiện đánh giá an ninh toàn diện khi áp dụng các đặc tính công nghệ mới. Khi công nghệ blockchain ngày càng phát triển, các bên dự án cần giữ cảnh giác và liên tục cập nhật thực hành an ninh để đối phó với các phương thức tấn công đang không ngừng tiến hóa.
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.
Lỗ hổng lưu trữ tạm thời gây ra cuộc tấn công 300.000 đô la cho dự án, an ninh on-chain lại vang lên hồi chuông cảnh báo
Lỗ hổng lưu trữ tạm thời gây ra cuộc tấn công 300.000 đô la vào các dự án trên chuỗi
Vào ngày 30 tháng 3 năm 2025, một dự án giao dịch đòn bẩy trên chuỗi Ethereum đã bị tấn công, gây thiệt hại hơn 300.000 đô la Mỹ tài sản. Đội ngũ an ninh đã tiến hành phân tích sâu về sự kiện này, dưới đây là những phát hiện liên quan:
Bối cảnh sự kiện
Kẻ tấn công đã khai thác một lỗ hổng trong tính năng lưu trữ tạm thời được giới thiệu trong phiên bản Solidity 0.8.24, (transient storage). Lưu trữ tạm thời là một vị trí lưu trữ dữ liệu mới, nhằm cung cấp cách lưu trữ tạm thời hiệu quả về chi phí và có hiệu lực trong thời gian giao dịch. Nó được thực hiện thông qua các lệnh TSTORE và TLOAD, với các đặc điểm như chi phí gas thấp, tính bền vững trong giao dịch và tự động xóa.
Nguồn gốc của cuộc tấn công
Nguyên nhân cơ bản của cuộc tấn công là giá trị được lưu trữ tạm thời bằng tstore trong hàm không được xóa sau khi kết thúc cuộc gọi hàm. Kẻ tấn công đã lợi dụng đặc điểm này để tạo ra các địa chỉ độc hại cụ thể nhằm vượt qua kiểm tra quyền hạn, từ đó chuyển ra token trong dự án.
Quá trình tấn công
Đánh giá thiệt hại
Theo dữ liệu từ công cụ phân tích trên chuỗi, kẻ tấn công đã đánh cắp tài sản trị giá khoảng 300.000 đô la, bao gồm 17.814,8626 USDC, 1,4085 WBTC và 119,871 WETH. Các tài sản này sau đó đã được đổi và chuyển vào một hệ thống ẩn danh.
Đề xuất an toàn
Sự kiện lần này một lần nữa nhấn mạnh tầm quan trọng của việc thực hiện đánh giá an ninh toàn diện khi áp dụng các đặc tính công nghệ mới. Khi công nghệ blockchain ngày càng phát triển, các bên dự án cần giữ cảnh giác và liên tục cập nhật thực hành an ninh để đối phó với các phương thức tấn công đang không ngừng tiến hóa.