YFV là một dự án DeFi dựa trên Ethereum, đầu ngày hôm nay, YFV đã chính thức đưa ra một văn bản nói rằng nó đã bị tống tiền. Kẻ tấn công có thể sử dụng lỗ hổng hợp đồng đặt cược để tự ý đặt lại YFV bị khóa bởi người dùng.

phân tích lỗ hổng
phân tích lỗ hổng
Có một chức năng stakeOnBehalf trong hợp đồng để kẻ tấn công có thể stake cho bất kỳ người dùng nào, như minh họa trong hình sau:

Câu lệnh lastStakeTimes[stakeFor] = block.timestamp; trong hàm này sẽ cập nhật laseStakeTimes[user] của ánh xạ địa chỉ người dùng. Và có xác minh trong chức năng được người dùng sử dụng để rút khoản thế chấp, yêu cầu thời gian rút tiền của người dùng phải lớn hơn lastStakeTimes[account]+72 giờ. Như hình dưới đây:

UnfrozenStakeTime được hiển thị trong hình bên dưới:

Tóm lại, người dùng độc hại có thể thế chấp một lượng tiền nhỏ cho người dùng bình thường, do đó khóa tiền của người dùng bình thường.
Theo thông tin trên chuỗi, chúng tôi đã tìm thấy hai cuộc tấn công bị nghi ngờ, như sau:
0xf8e155b3cb70c91c70963daaaf5041dee40877b3ce80e0cbd3abfc267da03fc9
0x8ae5e5b4f5a026bc27685f2b8cbf94e9e2c572f4905fcff1e263df24252965db
Một trong số chúng được thể hiện trong hình dưới đây:

tóm tắt
tóm tắt
Để xảy ra sự cố này, nguyên nhân sâu xa là do công tác kiểm tra mã nguồn trước khi đưa lên mạng chưa được thực hiện tốt. Sự cố này thực chất là một kẽ hở ở cấp độ kinh doanh.
Theo kinh nghiệm kiểm tra mã của Thành Đô Lianan, các bên dự án riêng lẻ đã không cung cấp thông tin đầy đủ liên quan đến dự án khi tiến hành kiểm tra mã, khiến kiểm toán mã không thể tìm ra một số sơ hở trong kinh doanh, dẫn đến thua lỗ nặng nề sau khi đưa lên mạng.
Phòng thí nghiệm bảo mật Thành Đô Lianan xin nhắc nhở tất cả các bên tham gia dự án: bảo mật là nền tảng của sự phát triển và kiểm tra mã tốt là điều kiện tiên quyết để đưa lên mạng.


