Các dòng bị sắp xếp sai khiến test khả năng thanh toán được thực hiện trước khi số tiền, hệ số và phần thưởngNợ của người dùng được đặt thành 0
Cuộc tấn công khoản vay chớp nhoáng trị giá 8 triệu USD của Platypus có thể thực hiện được do mã sai thứ tự, theo một báo cáo khám nghiệm tử thi từ kiểm toán viên Omniscia của Platypus. Công ty kiểm toán tuyên bố rằng mã có vấn đề không tồn tại trong phiên bản mà họ đã xem.
In light of the recent @Platypusdefi incident the https://t.co/30PzcoIJnt team has prepared a technical post-mortem analysis describing how the exploit unravelled in great details.
— Omniscia (@Omniscia_sec) February 17, 2023
Be sure to follow @Omniscia_sec to receive more security updates!https://t.co/cf784QtKPK pic.twitter.com/egHyoYaBhn
Theo báo cáo, hợp đồng Platypus MasterPlatypusV4 chứa một quan niệm sai lầm nghiêm trọng trong cơ chế Rút tiền khẩn cấp khiến nó thực hiện test khả năng thanh toán trước khi cập nhật Token LP được liên kết với vị trí Stake.
Báo cáo nhấn mạnh rằng mã cho chức năng EmergencyWithdraw có tất cả các yếu tố cần thiết để ngăn chặn một cuộc tấn công, nhưng những yếu tố này chỉ đơn giản là được viết sai thứ tự, như Omniscia đã giải thích:
Vấn đề có thể được ngăn chặn bằng cách sắp xếp lại các câu lệnh MasterPlatypusV4::emergencyWithdraw và thực hiện test khả năng thanh toán sau khi mục nhập số tiền người dùng được đặt thành 0, điều này sẽ ngăn chặn cuộc tấn công diễn ra.
Omnisia thừa nhận rằng họ đã test một phiên bản của hợp đồng MasterPlatypusV4 từ ngày 21 tháng 11 đến ngày 5 tháng 12 năm 2021. Tuy nhiên, phiên bản này không có điểm tích hợp với hệ thống platypusTreasure bên ngoài và do đó không chứa các dòng mã bị sắp xếp sai. Theo quan điểm của Omniscia, điều này ngụ ý rằng các nhà phát triển phải triển khai một phiên bản mới của hợp đồng tại một thời điểm nào đó sau khi kiểm toán được thực hiện.
Kiểm toán viên tuyên bố rằng việc thực hiện hợp đồng tại địa chỉ C-Chain Avalanche (AVAX) 0xc007f27b757a782c833c568f5851ae1dfe0e6ec7 là địa chỉ đã bị khai thác. Các dòng 582-584 của hợp đồng này dường như gọi một hàm gọi là isSolvent trên hợp đồng PlatypusTreasure và các dòng 599-601 xuất hiện để đặt số tiền, hệ số và phần thưởngNợ của người dùng thành 0. Tuy nhiên, số lượng này được đặt thành 0 sau khi hàm isSolvent đã được gọi.
Nhóm Platypus đã xác nhận vào ngày 16 tháng 2 rằng kẻ tấn công đã khai thác lỗ hổng trong [the] cơ chế test khả năng thanh toán của USP, nhưng ban đầu nhóm không cung cấp thêm thông tin chi tiết. Báo cáo mới này từ kiểm toán viên làm sáng tỏ thêm về cách kẻ tấn công có thể thực hiện được việc khai thác.
Nhóm Platypus đã thông báo vào ngày 16 tháng 2 rằng cuộc tấn công đã xảy ra. Nó đã cố gắng liên hệ với tin tặc và lấy lại tiền trong nền tảng giao dịch để nhận tiền thưởng lỗi. Kẻ tấn công đã sử dụng các khoản vay chớp nhoáng để thực hiện khai thác, tương tự như chiến lược được sử dụng trong khai thác Defrost Finance vào ngày 25 tháng 12.
Theo CoinTelegraph
|
Tags: Cho vay, Hợp đồng thông minh, Tin tặc, Hack,