Tôi vừa dành thời gian để kiểm tra vụ tấn công yeth $9M @yearnfi. Trong khi hầu hết mọi người chỉ ra rằng hacker đã đúc một lượng lớn yeth với một vài wei token (P1), tôi nghĩ đây không phải là nguyên nhân duy nhất. Lý do? Hacker thực sự KHÔNG rút yeth đã đúc, chỉ bán một phần trong số đó trên pool yETH-ETH để lấy 1000 ETH (~3M), ít hơn nhiều so với lợi nhuận thực tế của hacker (P2). Theo ý kiến của tôi, có 2 nguyên nhân gốc rễ (hoặc vector tấn công): (Cảnh báo: Đây chỉ là một phân tích dựa trên phân tích sơ bộ của tôi. Tôi có thể và đôi khi mắc sai lầm!) (1) một lỗi làm tròn dẫn đến việc đúc gần như vô hạn yETH. Điều này thực sự tương tự như vụ hack của balancer. Hệ số tỷ lệ (trong yETH gọi là rate) là một số xung quanh 1e18+x%, và một phép nhân-chia khiến số dư ảo phá vỡ các bất biến. Mã thực sự sử dụng số dư ảo đã làm tròn để tính toán tổng cung mới của yETH và đúc (new_supply - old_supply) cho kẻ tấn công (P3). (2) hàm update_rate dẫn đến tổn thất lớn của vault yETH Thực tế, kẻ tấn công đã gọi "update_rates" 2 lần trên OETH đã bọc và yETH đã mất khoảng 1000 ETH mỗi lần (nơi yETH đã bị đốt từ vault st-yeth, P4). -> 6M tổn thất. Thêm vào đó, lợi nhuận từ yETH đã bán cùng nhau lên tới ~9M. Điều này có thể đã được gây ra bởi việc tính toán sai bất biến thay vì chỉ là một lỗi làm tròn. ---- Tôi sẽ cập nhật trong bình luận của tweet này về bất kỳ hiểu biết mới nào của tôi về vụ tấn công này.
@yearnfi Cập nhật (1), tôi đã bị cấm vì cố gắng giúp đỡ trong discord của @yearnfi 🤣
@yearnfi Cập nhật, liên kết trên không phải là pm chính thức. Nhưng tôi nghĩ nó đã tiết lộ nguyên nhân gốc rễ và chỉ ra mã dễ bị tổn thương.
28,61K