Sumer Money hack - Reentrancy và thao túng tỷ giá

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

Hợp đồng sdrETH của dự án SumerMoney, một phiên bản phân nhánh của hợp đồng CEther từ Hợp chất, gần đây đã bị tấn công. Vector tấn công không phải là mới; kẻ tấn công đã lợi dụng lỗ hổng reentrancy để thao túng tỷ giá hối đoái giữa sdrToken được bao bọc và Token cơ bản.

Tổng quan

Địa chỉ của kẻ tấn công:

https://basescan.org/address/0xbb344544ad328b5492397e967fe81737855e7e77

Giao dịch tấn công: https://basescan.org/tx/0x619c44af9fedb8f5feea2dcae1da94b6d7e5e0e7f4f4a99352b6c4f5e43a4661

Hợp đồng dễ bị tổn thương ( TokensdrETH ): https://basescan.org/address/0x7b5969bb51fa3b002579d7ee41a454ac691716dc

Phân tích khai thác

Kẻ tấn công lần đầu tiên thực hiện một Khoản vay nhanh để vay số tiền lớn 150 WETH và 645.000 USDC từ Balancer Vault. Sau đó, anh ta cố gắng đẩy những tài sản này vào các hợp đồng sdrETHsdrUSDC để Mint các token được gói tương ứng.

Với những tài sản này làm tài sản thế chấp, kẻ tấn công đã cố gắng vay tất cả các tài sản cơ bản có sẵn trên thị trường sdrETH , với số tiền khoảng 150 ETH. Sau khi vay, kẻ tấn công ngay lập tức gọi hàm repayBorrowBehalf , hoàn trả ETH đã vay cộng với " 1 wei ". Vì hàm repayBorrowBehalf hoàn lại số tiền vượt quá cho người trả tiền bằng phương thức address.call cấp thấp nên cuối cùng nó sẽ kích hoạt luồng tấn công quay lại. Lợi dụng lỗ hổng này, kẻ tấn công có thể thao túng tỷ giá hối đoái trong hàm dự phòng trước khi totalBorrows được cập nhật.

Hãy xem tài liệu Hợp chất về tỷ giá hối đoái và chúng ta có thể thấy rằng nếu totalBorrows() không giảm chính xác sau khi hoàn trả thì tỷ giá hối đoái sẽ cao hơn nhiều so với mức cần thiết.

Kẻ tấn công sau đó đã tiến hành vay tất cả tài sản còn lại trên thị trường sdrcbETHsdrUSDC .

Với tỷ giá hối đoái bị thao túng của thị trường sdrETH , kẻ tấn công chỉ cần khoảng 74 sdrETH để lấy lại số tiền ban đầu là 150 ETH, trong khi số tiền sdrUSDC được đổi như bình thường.

Sau khi hoàn trả tất cả các khoản vay và hoàn thành cuộc tấn công, kẻ tấn công đã kiếm được khoảng 10 cbETH và 310.000 USDC.

Phần kết luận

Các nhà phát triển Web3 nên thận trọng khi tùy chỉnh các giao thức phổ biến như Hợp chất, đặc biệt là khi giới thiệu các tính năng mới hoặc sửa đổi các giao thức hiện có.

Mặc dù cuộc tấn công reentrancy là một lỗ hổng phổ biến trong hợp đồng thông minh và đã bị khai thác trong nhiều dự án trước đây, nhưng nó vẫn là một phương thức tấn công phổ biến trong không gian Web3. Cuộc tấn công này nhấn mạnh tầm quan trọng của việc kiểm tra bảo mật và sự cần thiết của các nhà phát triển để tuân thủ các phương pháp hay nhất trong các dự án trong tương lai.

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