Báo cáo kiểm toán của SlowMist cho biết vụ tấn công vào Truebit Protocol xuất phát từ lỗi tràn số nguyên trong phép cộng khi tính giá ở hợp đồng Purchase, khiến kẻ tấn công có thể mint token gần như miễn phí và rút 8.535 ETH (khoảng 26,44 triệu USD).
Sự cố cho thấy rủi ro nghiêm trọng khi smart contract dùng Solidity dưới 0.8.0 nhưng không bảo vệ đầy đủ các phép toán. Truebit đã thừa nhận vụ hack, khuyến cáo người dùng không tương tác với hợp đồng bị ảnh hưởng, trong khi cộng đồng nghi ngờ khả năng thu hồi tài sản.
- Lỗi không dùng SafeMath trong Solidity 0.6.10 khiến phép cộng bị tràn, làm giá về 0 và bị khai thác mint/arbitrage.
- Truebit ghi nhận thiệt hại 8.535 ETH, đồng thời cảnh báo người dùng tránh tương tác với hợp đồng bị ảnh hưởng.
- Phí giao dịch Uniswap tăng đột biến một phần lớn đến từ giao dịch liên quan token TRU, nhưng sau đó bị loại khỏi thống kê do token về 0.
Nguyên nhân cốt lõi của vụ hack Truebit là tràn số nguyên trong phép cộng khi tính giá
SlowMist xác định phép cộng ở tử số của công thức tính giá trong hợp đồng Purchase không dùng SafeMath, khiến xảy ra tràn uint256 và “quấn vòng”, từ đó đẩy Price về 0 và mở đường cho mint token chi phí cực thấp.
Báo cáo kiểm toán được SlowMist công bố cho biết hợp đồng của Truebit được biên dịch bằng Solidity 0.6.10. Ở phiên bản này, toán tử “+” mặc định không có kiểm tra tràn số, khác với các phiên bản Solidity mới hơn.
Kẻ tấn công đã tạo một lượng mint “đặc biệt” để phép cộng vượt quá giá trị tối đa của uint256, khiến kết quả bị wrap-around. Khi bước tính toán này trả về giá trị sai lệch, hàm tính giá có thể đưa Price về 0.
Với Price gần như bằng 0, kẻ tấn công có thể mint token với chi phí cực thấp và thực hiện arbitrage, nhanh chóng rút 8.535 ETH (xấp xỉ 26,44 triệu USD theo mô tả trong báo cáo).
Khuyến nghị kỹ thuật: dùng SafeMath cho Solidity dưới 0.8.0 để tránh lỗi logic do tràn số
SlowMist khuyến nghị mọi phép toán số học trong hợp đồng dùng Solidity dưới 0.8.0 cần được bảo vệ bằng SafeMath để ngăn lỗi logic do tràn số nguyên.
Đội ngũ bảo mật SlowMist khuyến nghị rằng với các hợp đồng được biên dịch bằng Solidity dưới 0.8.0, nhà phát triển cần đảm bảo mọi phép toán số học đều được bảo vệ bằng thư viện SafeMath để ngăn các lỗ hổng logic do tràn số nguyên.
– SlowMist, báo cáo kiểm toán
Trong bối cảnh EVM, các lỗi tràn số nguyên không chỉ gây sai lệch số liệu, mà còn có thể biến thành lỗ hổng kinh tế (economic exploit) nếu liên quan trực tiếp đến định giá, mint/burn, hoặc cơ chế thế chấp.
Truebit đã thừa nhận sự cố và cảnh báo không tương tác với hợp đồng bị ảnh hưởng
Đội ngũ Truebit xác nhận vụ hack, chỉ ra smart contract bị ảnh hưởng và khuyến cáo cộng đồng không tương tác với hợp đồng này cho đến khi có thông báo mới.
Truebit cho biết họ đang làm việc với cơ quan thực thi pháp luật và triển khai các biện pháp để xử lý tình huống, đồng thời sẽ cập nhật qua các kênh chính thức khi có thông tin.
Chúng tôi đang liên hệ với cơ quan thực thi pháp luật và thực hiện mọi biện pháp sẵn có để xử lý tình hình. Chúng tôi sẽ chia sẻ cập nhật qua các kênh chính thức khi thông tin sẵn sàng.
– Đội ngũ Truebit, thông báo chính thức
Một ngày sau, đội ngũ cho biết đã huy động thêm nguồn lực để tăng cường truy vết và thu hồi, và tiếp tục hứa hẹn cập nhật qua kênh chính thức.
Tâm lý thị trường sau sự cố: cộng đồng nghi ngờ khả năng phục hồi của giao thức và token TRU
Sau vụ hack, nhiều bình luận trong cộng đồng cho rằng giao thức gần như không thể sử dụng và khả năng thu hồi tiền là rất thấp, thậm chí có ý kiến nhận định việc phục hồi toàn bộ có thể là bất khả thi.
Thông tin trong bài cho biết token TRU giảm 100%, biến động phần trăm hiển thị bằng 0 và gần như không có khối lượng giao dịch trên các nền tảng lớn kể từ sau sự cố, phản ánh mức độ suy giảm niềm tin vào khả năng dự án bật lại.
Giao dịch liên quan TRU đã tạo cú hích ngắn hạn cho phí Uniswap
Uniswap ghi nhận doanh thu phí giao dịch hằng ngày hơn 1,4 triệu USD, nhưng gần 1,3 triệu USD được cho là đến trực tiếp từ các lệnh giao dịch liên quan token TRU.
Theo dữ liệu trên bảng điều khiển Dune theo dõi phí Uniswap do một nhà phân tích tên Marcov tạo, phần lớn phí trong ngày kỷ lục này xuất phát từ giao dịch liên quan TRU.
Sau đó, Marcov đã lọc các giá trị này khỏi bảng điều khiển trực tiếp vì token đã giảm về 0, đồng nghĩa lượng phí đó được cho là sẽ không được claim và không được dùng cho cơ chế burn UNI.
Độc giả có thể xem bài đăng chia sẻ báo cáo tại liên kết công bố của SlowMist trên X.
Những câu hỏi thường gặp
Vì sao Solidity 0.6.10 dễ gặp lỗi tràn số hơn Solidity 0.8.0?
Trong Solidity 0.6.10, các phép toán như “+” không tự kiểm tra tràn số. Nếu tổng vượt giới hạn uint256, giá trị có thể wrap-around. Từ Solidity 0.8.0, kiểm tra tràn số được bật mặc định, giúp giảm rủi ro lỗi logic kiểu này.
Kẻ tấn công đã khiến “Price = 0” bằng cách nào?
Theo SlowMist, kẻ tấn công tạo một lượng mint cụ thể để phép cộng ở tử số khi tính giá bị tràn uint256 và wrap-around. Sai lệch này khiến hàm tính giá trả về Price bằng 0, cho phép mint token gần như miễn phí và thực hiện arbitrage.
Truebit đã đưa ra khuyến cáo gì cho người dùng sau vụ hack?
Đội ngũ Truebit thừa nhận sự cố, xác định hợp đồng bị ảnh hưởng và khuyến cáo công chúng không tương tác với smart contract đó cho đến khi có thông báo tiếp theo, đồng thời nói đang phối hợp cơ quan thực thi pháp luật và tăng cường truy vết.
Tại sao phí Uniswap tăng mạnh lại liên quan đến token TRU?
Bảng điều khiển Dune của Marcov cho thấy gần 1,3 triệu USD trong hơn 1,4 triệu USD phí giao dịch hằng ngày đến từ giao dịch liên quan TRU. Khi TRU giảm về 0, các giá trị này được lọc khỏi dashboard vì được cho là không thể claim và không dùng để burn UNI.
