Ngày 8 tháng 1 năm 2026, giao thức Truebit Protocol đã bị tin tặc tấn công, thiệt hại 8.535,36 ETH (khoảng 26,44 triệu USD). Truebit Protocol đã chính thức xác nhận vào sáng hôm sau. Nhóm bảo mật ExVul đã thực hiện phân tích chi tiết về lỗ hổng của sự kiện tấn công này, kết quả phân tích như sau:
Quy trình tấn công
Địa chỉ của kẻ tấn công:
0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50
Hash giao dịch tấn công:
0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014
Kẻ tấn công đã hoàn thành cuộc tấn công bằng cách gọi chu kỳ 4 vòng giao dịch getPurchasePrice→0xa0296215→0xc471b10b, phân tích lấy ví dụ vòng lặp đầu tiên.
1. Kẻ tấn công trước tiên gọi hàm getPurchasePrice(240442509453545333947284131), trả về 0.
2. Kẻ tấn công gọi hàm 0xa0296215(c6e3ae8e2cbab1298abaa3), đồng thời msg.value là 0. Cuối cùng đúc thành công 240442509453545333947284131 đồng TRU.
3. Kẻ tấn công gọi hàm 0xc471b10b(c6e3ae8e2cbab1298abaa3). Cuối cùng hủy 240442509453545333947284131 đồng TRU, thu được 5105,06 đồng ETH.
Phân tích logic tấn công
Bằng cách hiểu quy trình tấn công trên, có thể phát hiện rõ ràng logic của hàm getPurchasePrice và hàm 0xa0296215 có vấn đề. Dưới đây bắt đầu phân tích sâu (do hợp đồng không mở nguồn, mã code dưới đây đều là mã đã dịch ngược).
Bằng cách so sánh điểm chung của hai hàm, chúng ta có thể thấy hàm 0x1446 dùng để lấy số ETH cần thiết để mua số lượng TRU chỉ định. Rõ ràng logic của hàm 0x1446 có vấn đề, dẫn đến tính toán ETH sai. Dưới đây phân tích chi tiết logic trong hàm 0x1446.
Quan sát logic trong hàm 0x1446, vì kết quả tính toán cuối cùng v13 == 0, nên chắc chắn logic tính toán ở trên đã xảy ra vấn đề. Cần biết rằng chức năng 0x18ef giống với _SafeMul, do đó vấn đề nằm ở việc sử dụng phép cộng gốc v12 + v9 (phiên bản hợp đồng là ^0.6.10, do đó không có kiểm tra tràn số).
v12 và v9, lần lượt biểu thị:
Thông qua phân tích trên, ý tưởng tấn công của kẻ tấn công là thông qua đầu vào _amountIn cực lớn, làm cho v12 + v9 tràn thành một giá trị rất nhỏ, cuối cùng làm cho (v12 + v9) / v6 == 0.
Tổng kết
Nguyên nhân gốc rễ của sự kiện tấn công Truebit Protocol lần này là do logic tính toán giá mua token tồn tại lỗ hổng tràn số nguyên nghiêm trọng. Do hợp đồng sử dụng phiên bản Solidity ^0.6.10 và không thực hiện kiểm tra an toàn đối với các phép tính số học quan trọng, cuối cùng gây ra thiệt hại lớn 8.535,36 ETH. Hiện tại, phiên bản Solidity mới đã tự giảm nhẹ lỗ hổng tràn số. Sự kiện tấn công này có lẽ là do tin tặc sử dụng AI để tự động quét một số giao thức DeFi cũ đã上线 (bao gồm các cuộc tấn công Balancer và yETH gần đây), chúng tôi cho rằng các sự kiện tấn công như vậy sử dụng AI để tấn công một số giao thức DeFi cũ sẽ ngày càng nhiều trong thời gian gần đây, do đó khuyến nghị các dự án có thể thực hiện kiểm tra bảo mật mới đối với mã hợp đồng, nếu phát hiện lỗ hổng, cần nâng cấp hợp đồng hoặc chuyển giao tài sản càng sớm càng tốt, đồng thời thực hiện giám sát trên chuỗi, kịp thời phát hiện bất thường, giảm thiểu thiệt hại đến mức thấp nhất.













