YFV เป็นโครงการ DeFi ที่ใช้ Ethereum ก่อนหน้านี้ YFV ได้ออกเอกสารอย่างเป็นทางการระบุว่าถูกแบล็กเมล์ ผู้โจมตีสามารถใช้ช่องโหว่ของสัญญาเดิมพันเพื่อรีเซ็ต YFV ที่ล็อคโดยผู้ใช้โดยพลการ

การวิเคราะห์ช่องโหว่
การวิเคราะห์ช่องโหว่
มีฟังก์ชัน stakeOnBehalf ในสัญญาเพื่อให้ผู้โจมตีสามารถเดิมพันสำหรับผู้ใช้รายใดก็ได้ ดังแสดงในรูปต่อไปนี้:

คำสั่ง lastStakeTimes[stakeFor] = block.timestamp ในฟังก์ชันนี้จะอัปเดต laseStakeTimes[user] ของการแมปที่อยู่ผู้ใช้ และมีการตรวจสอบในฟังก์ชันที่ผู้ใช้ใช้เพื่อถอนการจำนอง ซึ่งกำหนดให้ผู้ใช้ถอนเวลาต้องมากกว่าเวลาเดิมพันล่าสุด[บัญชี]+72 ชั่วโมง ดังที่แสดงด้านล่าง:

UnfrozenStakeTime แสดงในรูปด้านล่าง:

กล่าวโดยสรุปคือ ผู้ใช้ที่ประสงค์ร้ายสามารถจำนองเงินจำนวนเล็กน้อยกับผู้ใช้ปกติได้ ซึ่งจะเป็นการล็อกเงินของผู้ใช้ปกติ
จากข้อมูลในห่วงโซ่ เราพบการโจมตีที่น่าสงสัย 2 รายการดังนี้:
0xf8e155b3cb70c91c70963daaaf5041dee40877b3ce80e0cbd3abfc267da03fc9
0x8ae5e5b4f5a026bc27685f2b8cbf94e9e2c572f4905fcff1e263df24252965db
หนึ่งในนั้นแสดงในรูปด้านล่าง:

สรุป
สรุป
สำหรับเหตุการณ์นี้ ต้นเหตุคืองานตรวจสอบโค้ดก่อนออนไลน์ยังทำได้ไม่ดีนัก เหตุการณ์นี้เป็นช่องโหว่ในระดับธุรกิจ
ตามประสบการณ์ของ Chengdu Lianan ในการตรวจสอบโค้ด ฝ่ายโครงการแต่ละฝ่ายไม่ได้ให้ข้อมูลที่เกี่ยวข้องกับโครงการอย่างครบถ้วนเมื่อทำการตรวจสอบโค้ด ทำให้การตรวจสอบโค้ดไม่สามารถหาช่องโหว่ทางธุรกิจได้ ส่งผลให้เกิดความสูญเสียอย่างหนักหลังจากออนไลน์
Chengdu Lianan Security Lab ขอเตือนทุกฝ่ายในโครงการ: การรักษาความปลอดภัยเป็นรากฐานที่สำคัญของการพัฒนา และการตรวจสอบรหัสที่ดีเป็นข้อกำหนดเบื้องต้นสำหรับการออนไลน์


