Sự kiện Bonzo Lend: Làm thế nào một lỗ hổng chữ ký 0 có thể khiến giao thức mất 9 triệu USD?
Sự kiện Bonzo Lend: Lỗ hổng chữ ký số 0 đánh cắp 9,05 triệu USD thế nào?
Giao thức cho vay Bonzo Lend trên Hedera đã phải khóa tính năng rút tiền sau một cuộc tấn công khai thác lỗ hổng trong trình xác minh oracle (oracle verifier), cho phép kẻ tấn công vay 9,05 triệu USD chỉ với khoản thế chấp trị giá vài đô la.
Kẻ tấn công (Ví A) đã gửi 250 SAUCE (giá thực ~0,2 HBAR) rồi gửi một bản cập nhật giá SAUCE/wHBAR giả mạo, thổi phồng giá trị lên khoảng 12 bậc độ lớn. Điều đáng chú ý là bản cập nhật này chứa chữ ký số không hợp lệ: trường chữ ký là [0,0] và khóa công khai tham chiếu cũng là điểm "không" (điểm ở vô cực). Trình xác minh của nhà cung cấp oracle Supra đã gửi các giá trị này đến một hợp đồng ghép cặp (pairing). Vì cả hai điểm đầu vào đều biểu diễn đẳng thức toán học, phương trình ghép cặp trả về "đúng". Trình xác minh sau đó sai lầm diễn giải kết quả này như một bằng chứng ủy quyền, thay vì từ chối các đầu vào giá trị không và không thuộc nhóm con hợp lệ.
Với mức giá bị thao túng đã được oracle chấp nhận, giao thức cho vay Bonzo, tuân theo quy tắc tỷ lệ cho vay trên thế chấp (LTV) được lập trình sẵn, đã cho phép Ví A vay 6,63 triệu USDC và 34,5 triệu wHBAR, tổng cộng ~9,05 triệu USD theo giá tham chiếu.
Một ví khác (Ví B) cũng vay được khoảng 1 triệu USD khi giá bất thường còn hiệu lực và tự nhận là "mũ trắng", hứa sẽ hoàn trả tiền. Bonzo báo cáo khoảng 1 triệu USD đang trong quá trình được thu hồi.
Supra đã sửa lỗi trình xác minh, nhưng Bonzo Lend vẫn đang đóng băng. Các nhà cung cấp thanh khoản chưa thể rút tiền. Bonzo chưa công bố kế hoạch bồi thường, ngày mở lại hay điều khoản rút tiền cho người dùng, mọi thứ phụ thuộc vào kế hoạch phục hồi sắp tới.
marsbit07/14 02:54