Lỗi tràn số trong AMM là nguyên nhân khiến Cetus bị hack 223 triệu USD

Dedaub xác nhận nguyên nhân vụ hack sàn DEX Cetus nằm ở lỗi tràn số trong hàm tính thanh khoản của AMM, chứ không phải do bất kỳ sai sót nội bộ nào từ đội ngũ Cetus hay Sui.

Lỗi tràn số trong AMM là nguyên nhân khiến Cetus bị hack 223 triệu USD

Như Coin68 đưa tin, vào ngày 22/05 vừa qua, giao thức AMM DEX hàng đầu hệ Sui là Cetus Protocol đã bị tin tặc khai thác lỗ hổng, gây thiệt hại hơn 260 triệu USD, trở thành một trong những vụ tấn công DeFi nghiêm trọng nhất trong năm 2025.

Ban đầu, Giám đốc công nghệ của HackenProof cho rằng kẻ tấn công có thể đã dùng token giả để swap, thêm thanh khoản gần bằng 0 nhằm thao túng pool, rồi liên tục rút thanh khoản để chiếm đoạt SUI/USDC thật mà không cần tài sản thực. 

Tuy nhiên, báo cáo kỹ thuật chính thức từ công ty bảo mật Dedaub đã bác bỏ giả thuyết trên và khẳng định nguyên nhân gốc rễ đến từ một lỗi tràn số (overflow). Lỗi này nằm trong hàm get_delta_a của thư viện clmm_math.move, nơi hệ thống kiểm tra sai điều kiện tính toán, dẫn đến việc cấp lượng thanh khoản khổng lồ chỉ với 1 token, tạo điều kiện cho hacker rút sạch tài sản khỏi pool.

Trong lập trình, tràn số (overflow) xảy ra khi một phép tính tạo ra kết quả vượt quá giới hạn lưu trữ của dữ liệu. Hãy tưởng tượng bạn có một cái đồng hồ đếm giờ từ 0 đến 999. Khi đồng hồ đếm tới 999 và tiếp tục cộng thêm 1, nó không thể hiển thị 1000 vì bộ đếm chỉ cho phép tối đa 3 chữ số. Lúc này, đồng hồ sẽ quay về 000 và hiện tượng đó gọi là tràn số.

Trong trường hợp của Cetus, lỗi tràn số xảy ra khi hệ thống tính sai lượng thanh khoản người dùng nên nhận. Kẻ tấn công lợi dụng lỗ hổng này để nhập một con số cực lớn vào hệ thống, khiến nó hiểu nhầm rằng chỉ cần 1 token cũng có thể mở ra một vị thế thanh khoản trị giá hàng trăm triệu USD.

Thông thường, khi người dùng muốn thêm token vào pool thanh khoản của Cetus, hệ thống sẽ tính toán xem họ đã nạp bao nhiêu token và đổi lại sẽ nhận được bao nhiêu phần trăm thanh khoản tương ứng trong pool.

Tuy nhiên, vấn đề lại phát sinh ở hàm get_delta_a, khi hacker cố tình nhập vào một giá trị thanh khoản (liquidity) cực lớn, tức số lượng thanh khoản mà họ “muốn nhận lại”. Con số này lớn đến mức vượt quá khả năng xử lý của hàm tính toán.

Theo Dedaub, dù thường gọi là lỗi “tràn số” (overflow), nhưng thực chất nguyên nhân đến từ việc hàm kiểm tra tràn số bị viết sai. Cụ thể, các con số vượt ngưỡng 192 bit lẽ ra phải bị hệ thống chặn lại, thì nay lại lọt qua một cách âm thầm mà không có cảnh báo nào.

Khi hacker nhập vào một giá trị “liquidity” cực lớn, hệ thống thực hiện phép nhân với các tham số giá. Nhưng do kiểm tra sai, phần bit quan trọng nhất trong kết quả đã bị cắt mất, khiến hệ thống tính sai nghiêm trọng. Thay vì yêu cầu hàng triệu token để nhận thanh khoản, hệ thống tưởng nhầm chỉ cần 1 token là đủ.

Từ đó, hệ thống hiểu lầm rằng người dùng chỉ cần nạp 1 token nhỏ xíu cũng có thể nhận được một lượng thanh khoản khổng lồ trị giá hàng trăm triệu USD. Cụ thể, dưới đây là cách hacker thực hiện vụ tấn công:

Điều đáng nói là lỗi này từng được phát hiện và sửa trong phiên bản cũ trên Aptos từ năm 2023. Nhưng khi đội ngũ Cetus chuyển mã sang mạng Sui, họ vô tình đưa lỗi trở lại. Cả hai công ty kiểm toán trước đó là Ottersec và Zellic đều không phát hiện ra lỗ hổng này trong bản mã mới, dù đã tiến hành kiểm tra.

Mặc dù vậy, quyết định đóng băng tài sản bị đánh cắp sau vụ hack Cetus đã tạo ra làn sóng tranh cãi trong cộng đồng crypto. Nhiều người ủng hộ tính phi tập trung tỏ ra bất bình khi các validator mạng Sui can thiệp trực tiếp vào giao dịch của người dùng. Người dùng @ItsDave_ADA viết trên X:

Người dùng @buytheirsouls cũng lên tiếng châm biếm trên X ngày 23/05:

Tại thời điểm viết bài, đà giảm của CETUS vẫn chưa có dấu hiệu dừng lại, ghi nhận mức giảm gần 50% từ mức 0,245 USD vào ngày 22/05 xuống còn 0,138 USD vào ngày 26/05. 

Biến động giá CETUS trong 7 ngày qua, ảnh chụp màn hình trên CoinGecko lúc 12:20 PM ngày 26/05/2025

Coin68 tổng hợp

Related Posts

Hot Posts



Video Posts


CryptoCurrencyUSDChange 1hChange 24hChange 7d
Bitcoin59,212 0.13 % 1.82 % 2.14 %
Ethereum2,280.2 0.33 % 0.45 % 8.03 %
Tether1.000 0.10 % 0.04 % 0.10 %
XRP0.4984 0.26 % 3.12 % 9.45 %
BNB354.77 0.58 % 0.77 % 8.68 %
Solana186.42 0.49 % 1.90 % 26.06 %
USDC0.9991 0.18 % 0.16 % 0.12 %
Dogecoin0.1839 1.76 % 0.59 % 37.68 %
TRON0.2342 0.39 % 0.67 % 3.00 %
Cardano0.6331 0.47 % 2.16 % 11.66 %