Vào ngày 13 tháng 3 năm 2023, giao thức DeFi Euler Finance đã bị khai thác với khoản lỗ ~197 triệu đô la trong nhiều Tx. Khoảng 34.224.863$USDC , 849$WBTC , 85,818$stETH và 8.877.507tặng $ đã bị đánh cắp.
Giới thiệu về tài chính Euler
Trở lại vào tháng 6 năm 2020, Euler đã giành vị trí đầu tiên trong cuộc thi trực tuyến Spark College Hackathon do Encode Club tổ chức.
Euler ban đầu là một giao thức cho vay được xây dựng dựa trên Aave, Compound và các giao thức cho vay khác cho phép người dùng tạo thị trường cho vay của riêng họ cho bất kỳ Mã thông báo ERC-20 nào, đồng thời cung cấp các mô hình tỷ lệ phản ứng để giảm can thiệp quản trị.
Vào tháng 8 năm 2021, Euler đã nhận được khoản tài trợ Series A trị giá 8 triệu đô la do Paradigm đứng đầu. Trên trang web chính thức, Euler cũng cho biết họ có sáu chuyên gia đánh giá và không ai trong số họ tìm thấy các lỗ hổng nghiêm trọng.
thông tin liên quan
Địa chỉ dự án:
0x27182842e098f60e3d576794a5bffb0777e025d3
Tx tấn công:
https://etherscan.io/tx/0xc310a0affe2169d1f6feec1c63dbc7f7c62a887fa48795d327d4d2da2d6b111d
https://etherscan.io/tx/0x47ac3527d02e6b9631c77fad1cdee7bfa77a8a7bfd4880dccbda5146ace4088f
https://etherscan.io/tx/0x71a908be0bef6174bccc3d493becdfd28395d78898e355d451cb52f7bac38617
https://etherscan.io/tx/0x62bd3d31a7b75c098ccf28bc4d4af8c4a191b4b9e451fab4232258079e8b18c4
https://etherscan.io/tx/0x465a6780145f1efe3ab52f94c006065575712d2003d83d85481f3d110ed131d9
https://etherscan.io/tx/0x3097830e9921e4063d334acb82f6a79374f76f0b1a8f857e89b89bc58df1f311
Kẻ tấn công:
0x5f259d0b76665c337c6104145894f4d1d2758b8c
0xb2698c2d99ad2c302a95a8db26b08d17a77cedd4
Chúng tôi lấy một tx để phân tích.
1. Hacker đầu tiên cho vay 30 triệu USDtặng $ và tạo ra hai hợp đồng tấn công. 0x583 là để mượn và 0xA03 để thanh lý. Sau đó, anh ta gửi 300 triệu đô la vào hợp đồng vay.
2. Kẻ tấn công đã gửi 20 triệu đô la để nhận 19.568.124 eDAI.
3. Sau đó, kẻ tấn công gọi hàm đúc tiền để sử dụng 19.568.124 eDAI để vay 195.681.243 eDAI (tài sản thế chấp) và 200.000.000 dDAI (tài sản nợ), do đó tăng số dư eDAI lên gấp 10 lần.
4. Sau đó, kẻ tấn công gửi 10 triệu DAI còn lại thông qua chức năng hoàn trả, vay 195.681.243 eDAI và 200.000.000 dDAI một lần nữa.
5. Sau đó, kẻ tấn công đã thực hiện thao tác donateToReserves để đốt 100 triệu eDAI, khiến eDAI < dDAI đạt đến điều kiện thanh lý.
6. Bản thanh lý hợp đồng thanh lý hợp đồng vay.
7. Kẻ tấn công cuối cùng đã rút tất cả 38,9 triệu DAI khỏi hợp đồng và trả lại 30 triệu DAI cho AAVE, kiếm được lợi nhuận ~8,9 triệu đô la DAI.
Phân tích lỗ hổng
Chức năng donateToReserves của hợp đồng Etoken không kiểm tra được số lượng token thực tế do người dùng nắm giữ và tình trạng sổ cái của người dùng sau khi quyên góp, dẫn đến việc kẻ tấn công có thể quyên góp 100 triệu eDAI (thu được thông qua đòn bẩy, với người dùng thực sự chỉ gửi 30 triệu DAI). Sau khi quyên góp, tình trạng sức khỏe của sổ cái của người dùng đủ điều kiện để thanh lý, dẫn đến hợp đồng cho vay bị thanh lý. Hợp đồng cho vay chuyển eDAI và dDAI sang hợp đồng thanh lý, hợp đồng này sau đó sẽ được thanh lý. Do số nợ xấu lớn bất thường, hợp đồng thanh lý sẽ được thanh lý với mức chiết khấu tối đa, dẫn đến 310,93 triệu eDAI và 259,31 triệu dDAI sau khi thanh lý. Tại thời điểm này, người dùng đã được phục hồi sức khỏe và có thể rút tiền, và số tiền có thể rút là sự khác biệt giữa eDAI và dDAI. Tuy nhiên, vì chỉ có 38,9 triệu DAI trong nhóm nên chỉ có thể rút số tiền đó.
Nhìn chung, nguyên nhân sâu xa của cuộc tấn công là do hợp đồng Etoken không kiểm tra chính xác số lượng mã thông báo thực tế do người dùng nắm giữ và tình trạng sổ cái của người dùng sau khi quyên góp, điều này tạo cơ hội cho những kẻ tấn công.
Dòng tiền
Tính đến thời điểm viết bài, 80.080,98 ETH được giữ tại địa chỉ 0xb2698c2d99ad2c302a95a8db26b08d17a77cedd4.
88.651,70 ETH và 43063733,27 DAI được giữ tại địa chỉ 0xb66cd966670d962C227B3EABA30a872DbFb995db.
Chỉ một số lượng nhỏ (100 ETH) được chuyển sang Tornado Cash.
Hãy dùng thử Beosin KYT tại kyt.beosin.com.
Các giao thức bị ảnh hưởng bởi Euler là gì?
Theo 0xScope, Angle Protocol có 17,6 triệu USDC bằng Euler; DAO nhàn rỗi có 4,6 triệu USDC ở Euler; SwissBorg có 6.357 Ether và 1,7 triệu USDT được gửi vào Euler. Sau vụ tấn công, SwissBorg đã nhanh chóng vay 4.752 cbETH để giảm thiểu tổn thất, nhưng vẫn còn khoảng 4,26 triệu đô la tài sản ở Euler; địa chỉ cá voi 0x28a5 và czsamsun.eth lần lượt có 4 triệu đô la và 2,74 triệu đô la trong giao thức.
Công cụ tổng hợp lợi nhuận Yearn đã tweet rằng mặc dù nó không trực tiếp bị tấn công Euler nhưng một số kho tiền của Yearn đã gián tiếp bị tấn công.
Idle Finance đã tweet rằng nó cũng bị ảnh hưởng.
khuyến nghị
1. Khi phát triển hợp đồng thông minh, hãy lưu ý xem việc bổ sung chức năng tiếp theo có ảnh hưởng đến logic trước đó hay không.
2. Cẩn thận kiểm tra tài sản.