Poolz遭 tấn công tràn số học, thiệt hại đa chuỗi 66.5 triệu đô la Mỹ

robot
Đang tạo bản tóm tắt

Poolz gặp phải cuộc tấn công tràn số học, thiệt hại khoảng 66,5 triệu đô la

Gần đây, một sự kiện an ninh nghiêm trọng đã xảy ra trên nhiều mạng lưới blockchain. Theo dữ liệu giám sát blockchain cho thấy, vào rạng sáng ngày 15 tháng 3, dự án Poolz trên mạng Ethereum, chuỗi thông minh BNB và mạng Polygon đã bị tấn công bởi hacker, dẫn đến việc số lượng lớn token bị đánh cắp.

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. Tổng giá trị của các token bị đánh cắp ước tính khoảng 665.000 USD. Hiện tại, kẻ tấn công đã chuyển đổi một phần token bị đánh cắp sang BNB, nhưng vẫn chưa chuyển tiền ra khỏi địa chỉ tấn công.

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

Phân tích cho thấy, cuộc tấn công này chủ yếu lợi dụng một lỗ hổng tràn số học trong hợp đồng thông minh Poolz. Kẻ tấn công đã khéo léo thao tác tính toán số lượng token thông qua việc gọi hàm CreateMassPools, đạt được mục đích nhận được số lượng lớn token chỉ với một lượng token rất nhỏ.

Cụ thể, kẻ tấn công đầu tiên đã đổi một lượng nhỏ mã thông báo MNZ tại một sàn giao dịch phi tập trung nào đó. Sau đó, kẻ tấn công đã gọi hàm CreateMassPools để tạo hàng loạt các bể thanh khoản. Hàm này được sử dụng để người dùng có thể tạo bể một cách hàng loạt và cung cấp thanh khoản ban đầu.

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

Vấn đề nằm ở hàm getArraySum. Hàm này chịu trách nhiệm tính toán số lượng thanh khoản ban đầu mà người dùng cung cấp. Kẻ tấn công đã truyền vào một mảng được xây dựng đặc biệt, trong đó chứa hai số lớn. Khi hai số này được cộng lại, do giới hạn của kiểu uint256, đã xảy ra tràn số nguyên, dẫn đến kết quả cuối cùng trở thành 1.

Tuy nhiên, hợp đồng sử dụng giá trị lớn của đầu vào gốc khi ghi lại thuộc tính của pool. Điều này đã gây ra một sự không nhất quán nghiêm trọng: kẻ tấn công thực tế chỉ chuyển vào 1 token, nhưng hợp đồng lại ghi lại một giá trị khổng lồ. Cuối cùng, kẻ tấn công đã dễ dàng rút ra số lượng lớn token bằng cách gọi hàm withdraw, hoàn thành toàn bộ quá trình tấn công.

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

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

Sự kiện này nhắc nhở chúng ta rằng ngay cả những sơ suất lập trình có vẻ nhỏ cũng có thể dẫn đến tổn thất kinh tế lớn. Các dự án blockchain cần chú trọng hơn đến việc kiểm tra mã và kiểm tra an ninh để đảm bảo an toàn cho tài sản của người dùng.

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

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
  • Chia sẻ
Bình luận
0/400
ShibaOnTheRunvip
· 07-12 01:15
Lại là tay sai của lỗ hổng tràn
Xem bản gốcTrả lời0
GateUser-ccc36bc5vip
· 07-11 10:27
又 một dự án chết tiệt
Xem bản gốcTrả lời0
GasFeeNightmarevip
· 07-09 09:48
thế giới tiền điện tử một ngày bằng một năm trên thế gian
Xem bản gốcTrả lời0
BearMarketMonkvip
· 07-09 09:42
Được chơi cho Suckers lại bắt đầu rồi
Xem bản gốcTrả lời0
notSatoshi1971vip
· 07-09 09:38
Kiểm toán không người gây ra cái chết
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)