Một số Stable Pools trên Curve Finance sử dụng ngôn ngữ lập trình Vyper đã bị khai thác vào ngày 30 tháng 7, với khoản mất mát lên tới hơn $47M. Theo Vyper, các phiên bản 0.2.15, 0.2.16 và 0.3.0 của nó dễ bị trục trặc với Reentrancy Locks.
Reentrancy là một lỗ hổng của ngôn ngữ lập trình Solidity cho phép Hacker tấn công Contract của giao thức để thực hiện lệnh cal; bên ngoài đến một Contract không đáng tin cậy. Sau khi lệnh Call xảy ra, Hacker có thể sử dụng Contract đáng ngờ này để thực hiện các cuộc gọi lặp đi lặp lại tới giao thức nhằm rửa số tiền đánh cắp được.
Trước đó giao thức DeFi Agave và Hundred Finance bị tấn công thông qua lỗ hổng này, thiệt hại 11 triệu đô la vào ngày 15/03/2022.
A number of stablepools (alETH/msETH/pETH) using Vyper 0.2.15 have been exploited as a result of a malfunctioning reentrancy lock. We are assessing the situation and will update the community as things develop.
Other pools are safe. https://t.co/eWy2d3cDDj
— Curve Finance (@CurveFinance) July 30, 2023
Ngay sau đó, Vyper đã nhanh chóng mở rộng cuộc điều tra và kêu gọi các dự án xây dựng trên các phiên bản vừa nếu liên hệ ngay tới Vyper để hạn chế các cuộc tấn công tiếp theo diễn ra.
PSA: Vyper versions 0.2.15, 0.2.16 and 0.3.0 are vulnerable to malfunctioning reentrancy locks. The investigation is ongoing but any project relying on these versions should immediately reach out to us.
— Vyper (@vyperlang) July 30, 2023
Dựa trên phân tích các Contract bị ảnh hưởng bởi công ty bảo mật Ancilia, 136 Contract đã sử dụng Vyper 0.2.15 với tính năng Reentrant Protection, 98 Contract đã sử dụng Vyper 0.2.16 và 226 Contract đã sử dụng Vyper 0.3.0.
Sau cuộc điều tra ban đầu, đã phát hiện ra rằng một số phiên bản của trình biên dịch Vyper (Vyper Compiler) không thực hiện đúng cơ chế Reentrancy Guard, ngăn chặn việc thực thi nhiều chức năng trong một Contract bằng cách lock. Các Reentrancy Attacks có thể tiềm ẩn nguy cơ tiêu tốn toàn bộ tài sản từ một Contract.
Một số dự án DeFi đã bị ảnh hưởng bởi cuộc tấn công này:
- Sàn giao dịch phi tập trung Ellipsis đã báo cáo rằng một số Stable Pools ổn định có $BNB đã bị khai thác bằng cách sử dụng phiên bản cũ của trình biên dịch Vyper.
- Alchemix’s alETH-ETH cũng đã chứng kiến $13.6M bị mất, cùng với $11.4M la bị khai thác trên Pool JPEGd’s pETH-ETH, và $1.6M trong Pool sETH-ETH của Metronome.
- CEO của Curve Finance, Michael Egorov, xác nhận rằng 32 triệu token $CRV trị giá hơn $22M đã bị rút hết khỏi Pool trong một kênh Telegram.
Cuộc khai thác này đã gây ra hoảng loạn trong hệ sinh thái DeFi, thúc đẩy một loạt các giao dịch trên các Pool và hoạt động cứu hộ từ nhóm White Hats Hacker. Dữ liệu từ CoinMarketCap cho thấy $CRV giảm hơn 5% do tin này.
Thêm vào đó lượng thanh khoản của CRV đã giảm đáng kể trong những tháng gần đây, khiến nó dễ bị ảnh hưởng bởi những biến động giá mạnh. Mặc dù vậy các Contract crvUSD và bất kỳ Pool nào chứa nó vẫn không bị ảnh hưởng bởi cuộc tấn công.
Sàn giao dịch lớn nhất Hàn Quốc, Upbit, đã tạm dừng các dịch vụ gửi và rút tiền của Curve (CRV) do cuộc tấn công vào các Pool Stablecoin của Curve.
Cuộc tấn công này đã làm nổi lên các vấn đề về chất lượng phiên bản của Vyper Compiler. Các tài khoản Twitter đã chỉ ra rằng các dự án DeFi khác như Uniswap v3, Frax và nhiều dự án khác cũng đã sử dụng Vyper, nhưng do phiên bản cũ hơn nên chưa ảnh hưởng trong cuộc tấn công lần này.
The official documentation recommendation is actually a faulty version… 😅 https://t.co/ak0EQNFInE pic.twitter.com/l0viOKsuo0
— 23pds (@im23pds) July 31, 2023
Sự kiện này đã tạo áp lực xả hàng đối với nhiều dự án có liên quan đến Curve Finance, như Aave, Frax và Convex… Tình hình này khiến cộng đồng DeFi cảm thấy lo lắng và tìm cách tăng cường bảo mật trong không gian DeFi.