Đội ngũ BlockSec gần đây đã phát hiện ra hai lỗ hổng nghiêm trọng trong một hợp đồng tài sản số. Hai lỗ hổng này có thể dẫn đến việc tài sản của người dùng bị khóa và bên dự án không thể rút hơn 34 triệu USD.
Lỗ hổng đầu tiên liên quan đến chức năng hoàn tiền. Hàm hoàn tiền trong hợp đồng sử dụng vòng lặp để hoàn tiền cho tất cả người dùng, nhưng nếu một trong những người dùng đó là hợp đồng độc hại, họ có thể từ chối nhận hoàn tiền và dẫn đến việc toàn bộ giao dịch thất bại. Điều này sẽ ngăn cản tất cả người dùng nhận được tiền hoàn lại. May mắn thay, lỗ hổng này chưa bị khai thác.
Đối với các dự án có nhu cầu hoàn tiền, nên áp dụng các biện pháp an toàn sau:
Hạn chế người tham gia chỉ là Tài khoản sở hữu bên ngoài (EOA)
Sử dụng token ERC20 như WETH, thay vì tài sản gốc
Thiết kế cơ chế người dùng chủ động yêu cầu hoàn tiền, tránh hoàn tiền hàng loạt
Lỗ hổng thứ hai là một lỗi mã. Trong hàm rút tiền dự án, có một lỗi trong điều kiện so sánh. Hàm này nên so sánh tiến độ hoàn tiền với chỉ số đấu thầu, nhưng lại so sánh sai với tổng số đấu thầu. Do tiến độ hoàn tiền luôn nhỏ hơn tổng số đấu thầu và không còn tăng lên, điều kiện sẽ không bao giờ được thỏa mãn. Điều này khiến Bên dự án không thể rút tiền bị khóa trong hợp đồng.
Những lỗ hổng này lại làm nổi bật rằng các dự án nổi tiếng cũng có thể mắc phải những lỗi cơ bản. Đội ngũ phát triển cần phải viết đầy đủ các trường hợp kiểm tra và có nhận thức cơ bản về an ninh. Mặc dù kiểm toán an ninh đã trở thành một thực tiễn thông thường trong lĩnh vực tài chính phi tập trung, nhưng trong các dự án tài sản kỹ thuật số vẫn còn thiếu sót, sự kiện này đã gây ra tổn thất lớn.
Sự kiện này nhắc nhở chúng ta rằng ngay cả những dự án được chú ý cũng có thể tồn tại những lỗ hổng nghiêm trọng. Nó nhấn mạnh tầm quan trọng của việc thực hiện kiểm toán an ninh toàn diện trong phát triển dự án blockchain, đặc biệt là khi xử lý các khoản tiền lớn. Bên dự án nên chú trọng hơn đến an toàn hợp đồng để ngăn chặn các sai lầm tốn kém tương tự xảy ra.
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.
11 thích
Phần thưởng
11
4
Chia sẻ
Bình luận
0/400
QuorumVoter
· 08-04 12:28
giảm麻了这合约 Ai dám đổ tiền vào
Xem bản gốcTrả lời0
Ser_APY_2000
· 08-04 12:20
Ba mươi triệu đô la Mỹ lại bị kẹt như vậy sao? Hí呀... thật là vô lý
Xem bản gốcTrả lời0
MidnightMEVeater
· 08-04 12:12
Lại bị khóa sao? Đám đồ ngốc này xứng đáng trở thành cơm thừa trong tủ lạnh.
BlockSec phát hiện hai lỗ hổng trong hợp đồng tài sản số, 34 triệu USD vốn bị mắc kẹt
Đội ngũ BlockSec gần đây đã phát hiện ra hai lỗ hổng nghiêm trọng trong một hợp đồng tài sản số. Hai lỗ hổng này có thể dẫn đến việc tài sản của người dùng bị khóa và bên dự án không thể rút hơn 34 triệu USD.
Lỗ hổng đầu tiên liên quan đến chức năng hoàn tiền. Hàm hoàn tiền trong hợp đồng sử dụng vòng lặp để hoàn tiền cho tất cả người dùng, nhưng nếu một trong những người dùng đó là hợp đồng độc hại, họ có thể từ chối nhận hoàn tiền và dẫn đến việc toàn bộ giao dịch thất bại. Điều này sẽ ngăn cản tất cả người dùng nhận được tiền hoàn lại. May mắn thay, lỗ hổng này chưa bị khai thác.
Đối với các dự án có nhu cầu hoàn tiền, nên áp dụng các biện pháp an toàn sau:
Lỗ hổng thứ hai là một lỗi mã. Trong hàm rút tiền dự án, có một lỗi trong điều kiện so sánh. Hàm này nên so sánh tiến độ hoàn tiền với chỉ số đấu thầu, nhưng lại so sánh sai với tổng số đấu thầu. Do tiến độ hoàn tiền luôn nhỏ hơn tổng số đấu thầu và không còn tăng lên, điều kiện sẽ không bao giờ được thỏa mãn. Điều này khiến Bên dự án không thể rút tiền bị khóa trong hợp đồng.
Những lỗ hổng này lại làm nổi bật rằng các dự án nổi tiếng cũng có thể mắc phải những lỗi cơ bản. Đội ngũ phát triển cần phải viết đầy đủ các trường hợp kiểm tra và có nhận thức cơ bản về an ninh. Mặc dù kiểm toán an ninh đã trở thành một thực tiễn thông thường trong lĩnh vực tài chính phi tập trung, nhưng trong các dự án tài sản kỹ thuật số vẫn còn thiếu sót, sự kiện này đã gây ra tổn thất lớn.
Sự kiện này nhắc nhở chúng ta rằng ngay cả những dự án được chú ý cũng có thể tồn tại những lỗ hổng nghiêm trọng. Nó nhấn mạnh tầm quan trọng của việc thực hiện kiểm toán an ninh toàn diện trong phát triển dự án blockchain, đặc biệt là khi xử lý các khoản tiền lớn. Bên dự án nên chú trọng hơn đến an toàn hợp đồng để ngăn chặn các sai lầm tốn kém tương tự xảy ra.