Euler Finance遭遇 cuộc tấn công cho vay chớp nhoáng,损失近2亿美元
Vào ngày 13 tháng 3 năm 2023, dự án Euler Finance đã bị tấn công cho vay chớp nhoáng do lỗ hổng hợp đồng, dẫn đến thiệt hại khoảng 197 triệu USD. Kẻ tấn công đã lợi dụng lỗ hổng trong hàm donateToReserves của Etoken trong dự án, thiếu kiểm tra tính thanh khoản, để thực hiện nhiều thao tác với các loại tiền tệ khác nhau và thu được lợi nhuận khổng lồ.
Phân tích quá trình tấn công
Kẻ tấn công trước tiên đã vay 30 triệu DAI từ một nền tảng cho vay và triển khai hai hợp đồng: hợp đồng vay và hợp đồng thanh lý.
Sau đó, đặt cọc 20 triệu DAI vào hợp đồng Euler Protocol, nhận được 19,5 triệu eDAI.
Sử dụng tính năng đòn bẩy 10x của Giao thức Euler, cho vay 1.956 triệu eDAI và 2 triệu dDAI.
Sử dụng 10 triệu DAI còn lại để thanh toán một phần nợ và tiêu hủy số dDAI tương ứng, sau đó lại vay ra số lượng eDAI và dDAI tương đương.
Thông qua hàm donateToReserves, quyên góp 100 triệu eDAI (gấp 10 lần số tiền cần hoàn trả), và ngay lập tức thực hiện thao tác thanh lý, nhận được 310 triệu dDAI và 250 triệu eDAI.
Cuối cùng rút 3890 triệu DAI, hoàn trả khoản vay nhanh 3000 triệu DAI, lợi nhuận ròng khoảng 887 triệu DAI.
Nguyên nhân lỗ hổng
Chìa khóa để cuộc tấn công thành công là chức năng donateToReserves của Euler Finance thiếu kiểm tra tính thanh khoản cần thiết. Khác với các chức năng khác như mint, donateToReserves không gọi hàm checkLiquidity để xác minh tình trạng tài chính của người dùng. Điều này cho phép kẻ tấn công thao túng tài khoản của mình vào trạng thái có thể bị thanh lý và sau đó thực hiện thanh lý để thu lợi.
Trong trường hợp bình thường, hàm checkLiquidity sẽ gọi mô-đun RiskManager, đảm bảo số lượng Etoken của người dùng lớn hơn số lượng Dtoken để duy trì trạng thái tài khoản khỏe mạnh. Tuy nhiên, hàm donateToReserves đã bỏ qua bước quan trọng này, tạo cơ hội cho kẻ tấn công.
Khuyến nghị an toàn
Sự kiện này nhấn mạnh tầm quan trọng của việc kiểm toán an toàn hợp đồng thông minh. Đối với các dự án cho vay, cần đặc biệt chú ý đến một số khía cạnh sau đây:
Tính toàn vẹn của cơ chế hoàn trả vốn
Tính toàn diện của việc kiểm tra tính thanh khoản
Tính nghiêm ngặt của quy trình thanh lý nợ
Các bên dự án nên thực hiện kiểm toán an ninh toàn diện và sâu sắc trước khi triển khai hợp đồng, để đảm bảo tính an toàn và ổn định của các chức năng. Đồng thời, việc giám sát an ninh liên tục và sửa chữa lỗ hổng kịp thời cũng là những biện pháp cần thiết để đảm bảo sự vận hành an toàn lâu dài của dự án.
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
16 thích
Phần thưởng
16
7
Đăng lại
Chia sẻ
Bình luận
0/400
Ser_Liquidated
· 07-14 00:49
Lại phải hiến tế một dự án nữa tks
Xem bản gốcTrả lời0
mev_me_maybe
· 07-14 00:03
又又又被 bán phá giá了
Xem bản gốcTrả lời0
0xSoulless
· 07-13 14:42
đồ ngốc năm nào cũng chơi đùa với mọi người Chơi đùa với mọi người xong lại tiếp tục chơi đùa với mọi người
Xem bản gốcTrả lời0
RugpullSurvivor
· 07-11 02:50
Lại là cái nồi lớn! Trong lòng không chút tội lỗi nào sao?
Xem bản gốcTrả lời0
GasFeeCrier
· 07-11 02:46
Ngồi đợi bên dự án mất liên lạc Rug Pull
Xem bản gốcTrả lời0
GasFeeCrybaby
· 07-11 02:39
Lại một lần nữa bị đánh cắp. Tsk tsk.
Xem bản gốcTrả lời0
GasWaster
· 07-11 02:35
rip... một bài học đắt giá khác trong việc tối ưu hóa gas smh
Euler Finance遭 2 triệu đô la Khoản vay nhanh cuộc tấn công cho vay chớp nhoáng, hợp đồng lỗi là nguyên nhân chính.
Euler Finance遭遇 cuộc tấn công cho vay chớp nhoáng,损失近2亿美元
Vào ngày 13 tháng 3 năm 2023, dự án Euler Finance đã bị tấn công cho vay chớp nhoáng do lỗ hổng hợp đồng, dẫn đến thiệt hại khoảng 197 triệu USD. Kẻ tấn công đã lợi dụng lỗ hổng trong hàm donateToReserves của Etoken trong dự án, thiếu kiểm tra tính thanh khoản, để thực hiện nhiều thao tác với các loại tiền tệ khác nhau và thu được lợi nhuận khổng lồ.
Phân tích quá trình tấn công
Kẻ tấn công trước tiên đã vay 30 triệu DAI từ một nền tảng cho vay và triển khai hai hợp đồng: hợp đồng vay và hợp đồng thanh lý.
Sau đó, đặt cọc 20 triệu DAI vào hợp đồng Euler Protocol, nhận được 19,5 triệu eDAI.
Sử dụng tính năng đòn bẩy 10x của Giao thức Euler, cho vay 1.956 triệu eDAI và 2 triệu dDAI.
Sử dụng 10 triệu DAI còn lại để thanh toán một phần nợ và tiêu hủy số dDAI tương ứng, sau đó lại vay ra số lượng eDAI và dDAI tương đương.
Thông qua hàm donateToReserves, quyên góp 100 triệu eDAI (gấp 10 lần số tiền cần hoàn trả), và ngay lập tức thực hiện thao tác thanh lý, nhận được 310 triệu dDAI và 250 triệu eDAI.
Cuối cùng rút 3890 triệu DAI, hoàn trả khoản vay nhanh 3000 triệu DAI, lợi nhuận ròng khoảng 887 triệu DAI.
Nguyên nhân lỗ hổng
Chìa khóa để cuộc tấn công thành công là chức năng donateToReserves của Euler Finance thiếu kiểm tra tính thanh khoản cần thiết. Khác với các chức năng khác như mint, donateToReserves không gọi hàm checkLiquidity để xác minh tình trạng tài chính của người dùng. Điều này cho phép kẻ tấn công thao túng tài khoản của mình vào trạng thái có thể bị thanh lý và sau đó thực hiện thanh lý để thu lợi.
Trong trường hợp bình thường, hàm checkLiquidity sẽ gọi mô-đun RiskManager, đảm bảo số lượng Etoken của người dùng lớn hơn số lượng Dtoken để duy trì trạng thái tài khoản khỏe mạnh. Tuy nhiên, hàm donateToReserves đã bỏ qua bước quan trọng này, tạo cơ hội cho kẻ tấn công.
Khuyến nghị an toàn
Sự kiện này nhấn mạnh tầm quan trọng của việc kiểm toán an toàn hợp đồng thông minh. Đối với các dự án cho vay, cần đặc biệt chú ý đến một số khía cạnh sau đây:
Các bên dự án nên thực hiện kiểm toán an ninh toàn diện và sâu sắc trước khi triển khai hợp đồng, để đảm bảo tính an toàn và ổn định của các chức năng. Đồng thời, việc giám sát an ninh liên tục và sửa chữa lỗ hổng kịp thời cũng là những biện pháp cần thiết để đảm bảo sự vận hành an toàn lâu dài của dự án.