Poolz bị tấn công tràn số học, thiệt hại 66,5 triệu đô la.

Poolz bị tấn công tràn số học, thiệt hại khoảng 66,5 triệu đô la

Gần đây, nền tảng Poolz đã bị tấn công trên mạng Ethereum, Binance Smart Chain và Polygon, dẫn đến việc hàng triệu token bị đánh cắp, tổng giá trị khoảng 665.000 đô la Mỹ. Cuộc tấn công xảy ra vào lúc 3 giờ 16 phút sáng (theo giờ UTC) ngày 15 tháng 3 năm 2023.

Poolz bị tấn công do lỗi tràn số, thiệt hại khoảng 665K USD!

Theo dữ liệu trên chuỗi được theo dõi, cuộc tấn công 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 đã đổi một phần token bị đánh cắp thành BNB, nhưng hiện tại số tiền chưa được chuyển đi.

Poolz bị tấn công do vấn đề tràn số, thiệt hại khoảng 665K đô la!

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 đề nằm ở hàm getArraySum trong hàm CreateMassPools. Hàm này khi tính toán số lượng token, do kết quả cộng dồn vượt quá giá trị tối đa của kiểu uint256, dẫn đến tràn, và giá trị trả về cuối cùng trở thành 1.

Quy trình tấn công như sau:

  1. Kẻ tấn công đầu tiên đã đổi một số token MNZ thông qua một DEX.

  2. Sau đó gọi hàm CreateMassPools, tận dụng lỗ hổng của hàm getArraySum. Mảng _StartAmount do kẻ tấn công truyền vào chứa các giá trị siêu lớn, dẫn đến tràn số khi cộng.

  3. Do hàm CreatePool sử dụng _StartAmount để ghi lại thuộc tính của bể, kẻ tấn công thực tế chỉ chuyển vào 1 token, nhưng hệ thống ghi lại là một giá trị khổng lồ.

  4. Cuối cùng, kẻ tấn công gọi hàm withdraw để rút token, hoàn thành cuộc tấn công.

Poolz đã bị tấn công do vấn đề tràn số, thiệt hại khoảng 665K USD!

Để ngăn chặn các vấn đề như vậy xảy ra lần nữa, khuyên các nhà phát triển nên sử dụng phiên bản mới hơn của Solidity để biên dịch, vì phiên bản mới sẽ tự động thực hiện kiểm tra tràn. Đối với các dự án sử dụng phiên bản Solidity cũ, có thể xem xét sử dụng thư viện SafeMath của OpenZeppelin để giải quyết vấn đề tràn số nguyên.

Sự kiện này một lần nữa nhắc nhở chúng ta rằng, trong phát triển hợp đồng thông minh, phải đặc biệt cẩn thận khi xử lý các phép toán toán học, đặc biệt là khi liên quan đến tính toán số lớn. Đồng thời, việc thường xuyên tiến hành kiểm toán mã và kiểm tra an ninh cũng là những biện pháp quan trọng để đảm bảo an toàn cho dự án.

Poolz bị tấn công do lỗi tràn số, thiệt hại khoảng 665K USD!

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.
  • Phần thưởng
  • 5
  • Đăng lại
  • Chia sẻ
Bình luận
0/400
ValidatorVibesvip
· 4giờ trước
smh... một cuộc tấn công tràn bộ nhớ khác. giao thức kiểm tra thực sự là quản trị 101 frfr
Xem bản gốcTrả lời0
MetaverseVagrantvip
· 4giờ trước
Lại đen thui rồi, 660.000 cũng dám gọi là hacker.
Xem bản gốcTrả lời0
IntrovertMetaversevip
· 4giờ trước
Hợp đồng sao mà kém vậy?
Xem bản gốcTrả lời0
OnChainSleuthvip
· 4giờ trước
Lại lật bài rồi phải không?
Xem bản gốcTrả lời0
SurvivorshipBiasvip
· 4giờ trước
Cuộc tấn công nhỏ mà lại bạo lực như vậy.
Xem bản gốcTrả lời0
  • Ghim
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)