Scallop Protocol bị khai thác bằng flash loan, thiệt hại khoảng 142.000 USD trên Sui
Scallop Protocol vừa ghi nhận một vụ exploit nhắm vào hợp đồng phụ đã lỗi thời liên quan đến quỹ thưởng sSUI. Kẻ tấn công được cho là đã rút khoảng 142.000 USD, tương đương 150.000 SUI, trong một giao dịch cho thấy dấu hiệu thao túng oracle giá.
Nhóm phát triển cho biết hợp đồng lõi của giao thức không bị tác động và tiền gửi của người dùng vẫn an toàn. Tuy vậy, sự cố này cho thấy một phần mã cũ vẫn còn có thể bị gọi trên chuỗi và trở thành điểm tấn công ngoài phạm vi của hệ thống chính.
- Vụ khai thác xảy ra ở hợp đồng phụ đã lỗi thời, không phải hợp đồng lõi của Scallop.
- Kẻ tấn công được cho là đã lợi dụng thao túng oracle để tạo ra mức giá bất lợi và rút giá trị chênh lệch.
- Hợp đồng cũ có lỗ hổng ở biến khởi tạo thưởng, khiến tài khoản mới có thể được tính như đã tham gia từ rất sớm.
Điểm yếu nằm ở hợp đồng phụ đã bị bỏ quên
Phân tích ban đầu cho thấy kẻ tấn công không nhắm vào các luồng giao dịch phổ biến hay mã lõi đang vận hành, mà đi qua một hợp đồng V2 từ tháng 11/2023. Hợp đồng này vẫn tồn tại và có thể tương tác trên chuỗi, nên trở thành một bề mặt tấn công tiềm ẩn dù không còn là phần chính của hệ thống.
Trong DeFi, rủi ro không chỉ đến từ logic hiện tại mà còn từ các thành phần cũ chưa được vô hiệu hóa hoàn toàn. Trường hợp này cho thấy một bản triển khai đã lỗi thời vẫn có thể bị khai thác nếu nó còn liên kết với dữ liệu thưởng, oracle hoặc cơ chế tính toán giá trị tài sản.
Cách vụ tấn công được thực hiện
Theo mô tả kỹ thuật, lỗ hổng nằm ở việc thao túng các nguồn giá oracle do Scallop tự xây dựng. Kẻ tấn công đã làm sai lệch tỷ lệ SUI/USDC, dùng flash loan để vay và hoàn trả trong cùng một giao dịch, qua đó giữ lại phần chênh lệch phát sinh từ mức giá bị bóp méo.
Trong hợp đồng phụ đã lỗi thời, biến quan trọng là last_index không được khởi tạo khi tạo tài khoản mới. Điều này khiến tài khoản có thể được ghi nhận như đã staking từ trước, thay vì bắt đầu từ mốc hiện tại của pool thưởng.
Chỉ với 136.000 sSUI, kẻ tấn công được cho là đã nhận tín dụng tương đương 162 nghìn tỷ điểm. Do pool thưởng dùng tỷ lệ quy đổi 1:1 giữa tử số và mẫu số, lượng điểm này chuyển trực tiếp thành khoảng 162.000 SUI phần thưởng, cao hơn số dư 150.000 SUI trong pool nên toàn bộ quỹ đã bị rút sạch.
Di chuyển tài sản và dấu hiệu phục hồi của giao thức
Trên chuỗi, số tiền bị lấy đi được chuyển nhanh qua một dịch vụ trộn, làm giảm khả năng truy vết và thu hồi. Hiện chưa rõ liệu phần tài sản này có thể được phục hồi hay không.
Sau sự cố, đội ngũ tạm ngừng hoạt động rồi thông báo đã mở lại hợp đồng lõi và khôi phục vận hành. Theo thông báo này, việc nạp và rút hiện đã hoạt động bình thường, còn tác động của vụ khai thác được cho là chỉ giới hạn ở hợp đồng thưởng đã lỗi thời.
Tác động lên SUI và những điểm còn cần kiểm tra
Giá SUI không phản ứng tiêu cực ngay sau sự cố. Token này vẫn tăng gần 2% trong 24 giờ và được ghi nhận giao dịch quanh 0,94 USD, với khối lượng giao dịch 24 giờ khoảng 187 triệu USD.
Điểm cần theo dõi nằm ở khía cạnh quản trị rủi ro mã nguồn cũ: vì sao một hợp đồng không còn nằm ở trung tâm vận hành vẫn giữ khả năng gọi trên chuỗi, và cơ chế kiểm tra trước đó đã bỏ sót chi tiết nào. Hiện đội ngũ cho biết sẽ xem xét cách lỗ hổng này vượt qua các vòng kiểm toán trước đó.
Total kết
Vụ exploit của Scallop cho thấy trong DeFi, một hợp đồng phụ đã lỗi thời vẫn có thể gây thiệt hại đáng kể nếu còn liên kết với cơ chế tính thưởng hoặc oracle. Dù hợp đồng lõi không bị ảnh hưởng và tiền gửi người dùng được cho là an toàn, sự cố này vẫn là lời nhắc về rủi ro từ mã cũ còn tồn tại trên chuỗi và khả năng thao túng khi dữ liệu giá bị kiểm soát sai.



