Alkimiya là một giao thức chuyển đổi các tài nguyên blockspace của blockchain - như phí giao dịch - thành các tài sản có thể giao dịch. Nó sử dụng các hợp đồng thông minh để tạo ra một thị trường ngang hàng, giúp ổn định phí, cải thiện việc phát hiện giá và tối ưu hóa việc sử dụng tài nguyên trên các blockchain.
Vào ngày 28 tháng 3 năm 2025, Alkimiya đã bị tấn công dẫn đến mất khoảng 95,5K đô la. Nguyên nhân gốc rễ là do chuyển đổi số nguyên không an toàn trong quá trình tính toán mint khi người dùng gửi tài sản thế chấp.
Cảm ơn bạn đã đọc! Đăng ký miễn phí để nhận các bài viết mới và hỗ trợ công việc của tôi.
Tổng quan
Địa chỉ kẻ tấn công: 0xF6ffBa5cbF285824000daC0B9431032169672B6e
Hợp đồng của kẻ tấn công: 0x80bf7db69556d9521c03461978b8fc731dbbd4e4
Giao dịch tấn công: 0x9b9a6dd05526a8a4b40e5e1a74a25df6ecccae6ee7bf045911ad89a1dd3f0814
Hợp đồng dễ bị tấn công: 0xf3f84ce038442ae4c4dcb6a8ca8bacd7f28c9bde
Phân tích
Cuộc tấn công bắt đầu bằng một khoản vay nhanh 10 WBTC từ Morpho (dòng 5). Kẻ tấn công sau đó cố gắng mint chính xác 2^128 + 1 phần bằng cách sử dụng SilicaPools.collateralizedMint() (dòng 12), cung cấp khoảng 1,7 WBTC làm tài sản thế chấp (ô màu xanh).
SilicaPools đã mint chính xác 2^128 + 1 phần cho kẻ tấn công bằng cách sử dụng tham số shares
256-bit đầy đủ. Tuy nhiên, do một lần chuyển đổi không an toàn tại dòng 837, chỉ có 1 phần được ghi lại. Đây là lỗ hổng gốc rễ của cuộc tấn công.
Tham khảo Hình 1, kẻ tấn công đã chuyển 2^128 - 1 phần sang một địa chỉ khác (ô màu vàng), chỉ để lại 2 phần trong hợp đồng. Cuối cùng, họ gọi SilicaPools.redeemShort() để rút tài sản thế chấp.
Do sState.sharesMinted
được đặt không chính xác thành 1, trong khi hợp đồng của kẻ tấn công nắm giữ 2 phần, SilicaPools đã sai lầm trả lại khoảng 3,4 WBTC - gấp đôi số tiền gửi ban đầu.
Kết luận
Tối ưu hóa hiệu quả gas là có lợi, nhưng chỉ khi mã vẫn còn chính xác. Trong trường hợp này, gas được tiết kiệm là không đáng kể so với mất mát do lỗi gây ra. Mặc dù đã có nhiều đánh giá, nhưng lỗ hổng này vẫn không được phát hiện, dẫn đến một cuộc tấn công thực tế. Để ngăn chặn các vấn đề như vậy, chúng tôi đặc biệt khuyến nghị triển khai các biện pháp bảo mật nghiêm ngặt ngay từ đầu và trong suốt vòng đời dự án. Các đánh giá thường xuyên, xem xét mã và đánh giá các điểm yếu phải là thông lệ tiêu chuẩn để xác định và giảm thiểu rủi ro trước khi chúng bị khai thác.
Cảm ơn bạn đã đọc! Đăng ký miễn phí để nhận các bài viết mới và hỗ trợ công việc của tôi.