Poolz gặp phải cuộc tấn công lỗ hổng tràn số, thiệt hại khoảng 66.5 nghìn USD
Gần đây, một sự kiện tấn công nhằm vào Poolz đã thu hút sự chú ý rộng rãi của cộng đồng tiền điện tử. Theo dữ liệu giám sát trên chuỗi, cuộc tấn công xảy ra vào ngày 15 tháng 3 năm 2023, liên quan đến nhiều chuỗi như Ethereum, BNB Chain và Polygon. Cuộc tấn công này đã khiến nhiều loại token bị thiệt hại, tổng giá trị khoảng 66.5 nghìn đô la.
Kẻ tấn công đã khai thác một lỗ hổng tràn số trong hợp đồng thông minh Poolz. Cụ thể, vấn đề nằm ở hàm getArraySum trong hàm CreateMassPools. Hàm này trong quá trình tính toán số lượng token đã gặp vấn đề tràn, dẫn đến số lượng token thực tế chuyển vào không khớp với số lượng đã ghi nhận.
Quá trình tấn công đại khái như sau:
Kẻ tấn công trước tiên đã đổi một số token MNZ tại một sàn giao dịch phi tập trung nào đó.
Sau đó gọi hàm CreateMassPools. 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.
Trong quá trình CreatePool, do vấn đề tràn của hàm getArraySum, kẻ tấn công chỉ cần chuyển vào 1 token, nhưng hệ thống lại ghi nhận một giá trị lớn hơn nhiều so với số lượng thực tế.
Cuối cùng, kẻ tấn công đã rút token vượt xa số lượng thực tế mà họ đã gửi qua hàm withdraw, từ đó hoàn thành cuộc tấn công.
Sự kiện này lại làm nổi bật tầm quan trọng và rủi ro tiềm ẩn của các phép toán số trong hợp đồng thông minh. Để ngăn chặn các vấn đề tương tự, các nhà phát triển nên xem xét việc sử dụng phiên bản trình biên dịch Solidity mới hơn, những phiên bản này sẽ tự động kiểm tra tràn. Đối với các dự án sử dụng phiên bản Solidity cũ, nên áp dụng thư viện SafeMath của OpenZeppelin để xử lý các phép toán số nguyên, nhằm tránh rủi ro tràn.
Sự kiện này nhắc nhở chúng ta rằng, trong phát triển blockchain và hợp đồng thông minh, an ninh luôn nên là yếu tố được ưu tiên hàng đầu. Việc kiểm tra mã định kỳ, sử dụng các thư viện đã được xác minh, cũng như thực hiện các biện pháp an toàn toàn diện là rất quan trọng để bảo vệ tài sản của người dùng và duy trì danh tiếng của 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.
5 thích
Phần thưởng
5
2
Chia sẻ
Bình luận
0/400
GweiTooHigh
· 18giờ trước
Lại một lần nữa bị tràn, bây giờ vẫn còn dự án mắc phải lỗi cơ bản này.
Poolz bị tấn công tràn số học, thiệt hại 66,5 triệu USD
Poolz gặp phải cuộc tấn công lỗ hổng tràn số, thiệt hại khoảng 66.5 nghìn USD
Gần đây, một sự kiện tấn công nhằm vào Poolz đã thu hút sự chú ý rộng rãi của cộng đồng tiền điện tử. Theo dữ liệu giám sát trên chuỗi, cuộc tấn công xảy ra vào ngày 15 tháng 3 năm 2023, liên quan đến nhiều chuỗi như Ethereum, BNB Chain và Polygon. Cuộc tấn công này đã khiến nhiều loại token bị thiệt hại, tổng giá trị khoảng 66.5 nghìn đô la.
Kẻ tấn công đã khai thác một lỗ hổng tràn số trong hợp đồng thông minh Poolz. Cụ thể, vấn đề nằm ở hàm getArraySum trong hàm CreateMassPools. Hàm này trong quá trình tính toán số lượng token đã gặp vấn đề tràn, dẫn đến số lượng token thực tế chuyển vào không khớp với số lượng đã ghi nhận.
Quá trình tấn công đại khái như sau:
Kẻ tấn công trước tiên đã đổi một số token MNZ tại một sàn giao dịch phi tập trung nào đó.
Sau đó gọi hàm CreateMassPools. 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.
Trong quá trình CreatePool, do vấn đề tràn của hàm getArraySum, kẻ tấn công chỉ cần chuyển vào 1 token, nhưng hệ thống lại ghi nhận một giá trị lớn hơn nhiều so với số lượng thực tế.
Cuối cùng, kẻ tấn công đã rút token vượt xa số lượng thực tế mà họ đã gửi qua hàm withdraw, từ đó hoàn thành cuộc tấn công.
Sự kiện này lại làm nổi bật tầm quan trọng và rủi ro tiềm ẩn của các phép toán số trong hợp đồng thông minh. Để ngăn chặn các vấn đề tương tự, các nhà phát triển nên xem xét việc sử dụng phiên bản trình biên dịch Solidity mới hơn, những phiên bản này sẽ tự động kiểm tra tràn. Đối với các dự án sử dụng phiên bản Solidity cũ, nên áp dụng thư viện SafeMath của OpenZeppelin để xử lý các phép toán số nguyên, nhằm tránh rủi ro tràn.
Sự kiện này nhắc nhở chúng ta rằng, trong phát triển blockchain và hợp đồng thông minh, an ninh luôn nên là yếu tố được ưu tiên hàng đầu. Việc kiểm tra mã định kỳ, sử dụng các thư viện đã được xác minh, cũng như thực hiện các biện pháp an toàn toàn diện là rất quan trọng để bảo vệ tài sản của người dùng và duy trì danh tiếng của dự án.