Hack Abracadabra trị giá 1,8 triệu đô la lặp lại lỗi Fork trước đó, Hacken tiết lộ

Bài viết này được dịch máy
Xem bản gốc

Giao thức DeFi Abracadabra đã mất 1,8 triệu đô la sau khi kẻ tấn công khai thác một lỗi logic đơn giản trong hàm xử lý hàng loạt của nó. Các nhà phân tích tại Hacken cho biết kẻ tấn công đã rửa tiền thông qua Tornado Cash.

Bản tóm tắt
  • Abracadabra đã mất gần 2 triệu đô la sau khi kẻ tấn công khai thác một lỗi logic đơn giản trong hàm hàng loạt của nó, tương tự như một cuộc tấn công vào một dự án phân nhánh vài ngày trước đó.
  • Kẻ tấn công đã bỏ qua cờ an toàn dùng để kiểm tra xem người vay có đủ tài sản thế chấp hay không và rút hết sáu Cauldron cùng một lúc trước khi đổi MIM bị đánh cắp lấy ETH và chuyển qua Tornado Cash.
  • Đây không phải là lần đầu tiên mã của Abracadabra bị nhắm mục tiêu, nhưng sự cố này cho thấy một hàm nhỏ chưa được triển khai có thể bị tin tặc lợi dụng, ngay cả khi lỗ hổng tương tự đã xuất hiện trong một Fork.

Vào đầu tháng 10, Abracadabra, một giao thức cho vay DeFi cho phép mọi người vay stablecoin MIM bằng cách sử dụng token đã gửi làm tài sản thế chấp và đã bị tin tặc tấn công nhiều lần trước đó, lần này một lần nữa mất khoảng 1,8 triệu đô la sau khi kẻ tấn công sử dụng một lỗi logic đơn giản trong hàm lô của giao thức để vay mà không cần thế chấp bất kỳ tài sản thế chấp nào, tương tự như cách một dự án phân nhánh đã bị tấn công chỉ vài ngày trước đó, các nhà phân tích tại công ty bảo mật blockchain Hacken cho biết trong một ghi chú nghiên cứu được chia sẻ với crypto.news.

Abracadabra được ra mắt như một cách để mọi người sử dụng token sinh lãi làm tài sản thế chấp và vay một Token neo giá vào đô la Mỹ có tên là Magic Internet Money, hay MIM. Hệ thống được xây dựng xung quanh hai phần: Cauldrons, nơi xử lý các quy tắc vay, và DegenBox, kho lưu trữ chung thực sự lưu trữ token. Short: bạn đặt tài sản thế chấp vào một Cauldron, và DegenBox sẽ theo dõi tiền ở chế độ nền.

Bạn cũng có thể thích: Tài khoản X Trung Quốc của PancakeSwap bị hack để quảng bá đồng tiền meme

Short lại, lỗi đã xảy ra như sau: một cờ an toàn được cho là sẽ buộc kiểm tra lần cuối xem người vay có thực sự sở hữu tài sản thế chấp hay không đã bị tắt trong một giao dịch duy nhất. Theo báo cáo của Hacken, kẻ tấn công đã "lợi dụng một lỗ hổng logic trong hàm cook() của Abracadabra, cho phép chúng mượn token MIM và sau đó ngay lập tức đặt lại cờ xác thực vốn được cho là sẽ kiểm tra xem chúng có đủ tài sản thế chấp hay không". Điều này cho phép chúng mượn một lần duy nhất, không cần thế chấp trên nhiều Cauldron.

Dưới kính hiển vi

Sau đây là cách hoạt động của luồng, nói một cách đơn giản. Abracadabra sử dụng một hàm xử lý hàng loạt gọi là cook() để người dùng có thể thực hiện nhiều hành động trong một giao dịch. Ví dụ, gửi tài sản thế chấp và vay trong cùng một cú nhấp chuột. Một trong những hành động đó, chẳng hạn như bước "vay", sẽ đặt một cờ có tên needsSolvencyCheck thành true, nghĩa là "khi kết thúc giao dịch này, hãy kiểm tra xem người vay có an toàn không".

Một trong những chiếc Cauldron dễ bị tổn thương | Nguồn: Hacken

Nhưng một hành động khác có thể chạy bên trong cùng một lô gọi là “_additionalCookAction(…).” Như Hacken chỉ ra, hàm đó được khai báo là “ảo” và không bao giờ được triển khai, do đó theo mặc định, nó trả về một đối tượng trống trong đó mọi thứ được đặt thành false, bao gồm cả cờ needsSolvencyCheck .

Kết quả là, kẻ tấn công đã gọi hành động vay, sau đó gọi hành động mặc định để đặt lại cờ và cuối cùng, giao thức không bao giờ kiểm tra khả năng thanh toán.

Các nhà phân tích cho biết kẻ tấn công đã tấn công sáu Cauldron cùng một lúc, lấy đi khoảng 1,79 triệu MIM và đổi lấy ETH. Kẻ tấn công đã khai thác lỗ hổng bảo mật, và có hệ thống kiểm tra sáu Cauldron khác nhau và rút sạch từng Cauldron "bằng cùng một kỹ thuật với một lệnh gọi hàm cook chuyên dụng", các nhà phân tích giải thích.

Tiền rửa từ vụ hack Abracadabra | Nguồn: Hacken

Sau khi hoán đổi, kẻ tấn công chuyển tiền qua Tornado Cash, một giao thức trộn tiền điện tử, chủ yếu là 10 ETH mỗi giao dịch, được gửi dần vào ngày hôm sau.

Và đây không phải là lần đầu tiên mã CauldronV4 của Abracadabra gặp sự cố. Các sự cố khác hồi đầu năm nay đã sử dụng các trường hợp ngoại lệ khác nhau trong cùng một họ hợp đồng. Điều thú vị bây giờ là tốc độ phản ứng của quá trình triển khai phân nhánh.

Theo báo cáo, một Fork có tên Synnax đã tạm dừng hoặc hủy danh sách trắng cho nhánh CauldronV4 trên DegenBox của chính nó vài ngày trước khi Abracadabra bị rút cạn. Về cơ bản, nhóm Fork đã kéo phanh khẩn cấp sau khi phát hiện ra cùng một mẫu yếu, cho thấy rằng rủi ro có thể nhìn thấy được đối với các nhóm theo dõi mã, nếu không được sửa.

Đọc thêm: Bitcoin có thể bị hack, bước đột phá lớn nhất của lượng tử chứng minh rằng không phải là liệu có hay không mà là khi nào

Nguồn
Tuyên bố từ chối trách nhiệm: Nội dung trên chỉ là ý kiến của tác giả, không đại diện cho bất kỳ lập trường nào của Followin, không nhằm mục đích và sẽ không được hiểu hay hiểu là lời khuyên đầu tư từ Followin.
Thích
Thêm vào Yêu thích
Bình luận