Poolz bị tấn công, thiệt hại khoảng 66.5 triệu đô la
Gần đây, nền tảng Poolz đã gặp phải một sự cố an ninh nghiêm trọng, dẫn đến thiệt hại khoảng 665.000 USD. Cuộc tấn công này liên quan đến nhiều blockchain, bao gồm Ethereum, BNB Smart Chain và Polygon.
Kẻ tấn công đã lợi dụng một lỗ hổng tràn số học trong hợp đồng Poolz. Cụ thể, vấn đề xảy ra trong hàm getArraySum của hàm CreateMassPools. Hàm này đã không xử lý đúng số lớn khi tính toán số lượng token, dẫn đến tràn số, cho phép kẻ tấn công có được một lượng lớn token với chi phí rất thấp.
Quá trình tấn công đại khái như sau:
Kẻ tấn công trước tiên đã đổi một lượng nhỏ token MNZ trên một DEX.
Sau đó đã gọi hàm CreateMassPools có lỗ hổng. Hàm này lẽ ra cho phép người dùng tạo hàng loạt các bể thanh khoản và cung cấp thanh khoản ban đầu.
Bằng cách xây dựng các tham số một cách cẩn thận, kẻ tấn công đã kích hoạt tràn số nguyên trong hàm getArraySum. Điều này khiến hệ thống sai lầm nghĩ rằng kẻ tấn công đã cung cấp một lượng lớn token, trong khi thực tế chỉ chuyển vào một lượng rất nhỏ.
Cuối cùng, kẻ tấn công đã rút token không thuộc về mình thông qua hàm withdraw, hoàn thành cuộc tấn công.
Sự kiện này liên quan đến nhiều loại token, bao gồm MEE, ESNC, DON, ASW, KMON, POOLZ, v.v. Kẻ tấn công đã chuyển đổi một phần lợi nhuận thành BNB, nhưng tính đến thời điểm báo cáo, họ vẫn chưa chuyển tiền ra ngoài.
Để ngăn chặn các vấn đề tương tự, các chuyên gia an ninh khuyên các nhà phát triển sử dụng phiên bản mới hơn của ngôn ngữ lập trình Solidity, những phiên bản này sẽ tự động kiểm tra tràn số trong quá trình biên dịch. Đối với các dự án sử dụng phiên bản Solidity cũ, có thể xem xét việc sử dụng thư viện SafeMath của OpenZeppelin để ngăn chặn tràn số nguyên.
Sự kiện này một lần nữa nhấn mạnh tầm quan trọng của việc tiến hành kiểm tra an ninh một cách nghiêm ngặt trong phát triển hợp đồng thông minh, đặc biệt là khi xử lý các chức năng liên quan đến lượng tính toán lớn. Nó cũng nhắc nhở các nhà đầu tư và người dùng cần thận trọng với các dự án DeFi mới nổi và luôn chú ý đến tình trạng an ninh của các dự án.
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
13 thích
Phần thưởng
13
6
Đăng lại
Chia sẻ
Bình luận
0/400
ser_we_are_ngmi
· 9giờ trước
Lại là lỗ hổng tràn, giảm mãi không ngừng!
Xem bản gốcTrả lời0
BlockchainThinkTank
· 9giờ trước
Dựa trên kinh nghiệm, các lỗ hổng tràn kiểu này thuộc về vấn đề cơ bản của đội ngũ phát triển, khuyên mọi người nên tránh xa những dự án kiểu này.
Xem bản gốcTrả lời0
NFTRegretDiary
· 9giờ trước
Lại là lỗ hổng tràn, hợp đồng thông minh tân binh cuốn ra khỏi giang hồ
Poolz bị Hacker tấn công, thiệt hại đa chuỗi 66.5 triệu USD
Poolz bị tấn công, thiệt hại khoảng 66.5 triệu đô la
Gần đây, nền tảng Poolz đã gặp phải một sự cố an ninh nghiêm trọng, dẫn đến thiệt hại khoảng 665.000 USD. Cuộc tấn công này liên quan đến nhiều blockchain, bao gồm Ethereum, BNB Smart Chain và Polygon.
Kẻ tấn công đã lợi dụng một lỗ hổng tràn số học trong hợp đồng Poolz. Cụ thể, vấn đề xảy ra trong hàm getArraySum của hàm CreateMassPools. Hàm này đã không xử lý đúng số lớn khi tính toán số lượng token, dẫn đến tràn số, cho phép kẻ tấn công có được một lượng lớn token với chi phí rất thấp.
Quá trình tấn công đại khái như sau:
Kẻ tấn công trước tiên đã đổi một lượng nhỏ token MNZ trên một DEX.
Sau đó đã gọi hàm CreateMassPools có lỗ hổng. Hàm này lẽ ra cho phép người dùng tạo hàng loạt các bể thanh khoản và cung cấp thanh khoản ban đầu.
Bằng cách xây dựng các tham số một cách cẩn thận, kẻ tấn công đã kích hoạt tràn số nguyên trong hàm getArraySum. Điều này khiến hệ thống sai lầm nghĩ rằng kẻ tấn công đã cung cấp một lượng lớn token, trong khi thực tế chỉ chuyển vào một lượng rất nhỏ.
Cuối cùng, kẻ tấn công đã rút token không thuộc về mình thông qua hàm withdraw, hoàn thành cuộc tấn công.
Sự kiện này liên quan đến nhiều loại token, bao gồm MEE, ESNC, DON, ASW, KMON, POOLZ, v.v. Kẻ tấn công đã chuyển đổi một phần lợi nhuận thành BNB, nhưng tính đến thời điểm báo cáo, họ vẫn chưa chuyển tiền ra ngoài.
Để ngăn chặn các vấn đề tương tự, các chuyên gia an ninh khuyên các nhà phát triển sử dụng phiên bản mới hơn của ngôn ngữ lập trình Solidity, những phiên bản này sẽ tự động kiểm tra tràn số trong quá trình biên dịch. Đối với các dự án sử dụng phiên bản Solidity cũ, có thể xem xét việc sử dụng thư viện SafeMath của OpenZeppelin để ngăn chặn tràn số nguyên.
Sự kiện này một lần nữa nhấn mạnh tầm quan trọng của việc tiến hành kiểm tra an ninh một cách nghiêm ngặt trong phát triển hợp đồng thông minh, đặc biệt là khi xử lý các chức năng liên quan đến lượng tính toán lớn. Nó cũng nhắc nhở các nhà đầu tư và người dùng cần thận trọng với các dự án DeFi mới nổi và luôn chú ý đến tình trạng an ninh của các dự án.