.@OnyxDAO đã bị tấn công, gây ra tổn thất gần 4 triệu đô la. Nguyên nhân gốc rễ là do dữ liệu đầu vào của người dùng chưa được xác minh trong quá trình thanh lý. Cụ thể, các tham số chính của hàm liquidateWithSingleRepay trong hợp đồng NFTLiquidation có thể được kẻ tấn công kiểm soát, cho phép thao túng biến extraRepayAmount thông qua tham số returnsAmount. Bằng cách khai thác điều này, kẻ tấn công đã có thể thanh lý tất cả tài sản thế chấp chỉ bằng một mã thông báo.
Các bước tấn công chính được tóm tắt như sau:
1. Đầu tiên, kẻ tấn công đã gửi oETH và vay nhiều tài sản khác nhau để đạt đến ngưỡng thanh lý. Đồng thời, chúng đã tạo ra một hợp đồng mới, thông qua một cuộc tấn công quyên góp và mất độ chính xác (có từ nhánh Compound V2), làm giảm tỷ giá hối đoái oETH, khiến vị thế của kẻ tấn công đủ điều kiện để thanh lý.
2. Sau đó, kẻ tấn công đã thực hiện thanh lý. Do xác thực tham số không đủ, kẻ tấn công đã thao túng biến extraRepayAmount, được thêm vào phép tính về số lượng mã thông báo cần thanh lý. Điều này cho phép kẻ tấn công có được nhiều oETH hơn thông qua thanh lý, dẫn đến lợi nhuận.
Attack Tx:
Các bước tấn công chính được tóm tắt như sau:
1. Đầu tiên, kẻ tấn công đã gửi oETH và vay nhiều tài sản khác nhau để đạt đến ngưỡng thanh lý. Đồng thời, chúng đã tạo ra một hợp đồng mới, thông qua một cuộc tấn công quyên góp và mất độ chính xác (có từ nhánh Compound V2), làm giảm tỷ giá hối đoái oETH, khiến vị thế của kẻ tấn công đủ điều kiện để thanh lý.
2. Sau đó, kẻ tấn công đã thực hiện thanh lý. Do xác thực tham số không đủ, kẻ tấn công đã thao túng biến extraRepayAmount, được thêm vào phép tính về số lượng mã thông báo cần thanh lý. Điều này cho phép kẻ tấn công có được nhiều oETH hơn thông qua thanh lý, dẫn đến lợi nhuận.
Attack Tx: