การโจมตี Float Protocol
Float Protocol สูญเสียประมาณ 28,000 ดอลลาร์ หรือ 10.71 ETH หลังจากที่ผู้โจมตีใช้การกู้ยืมแบบชั่วคราวเพื่อจัดการราคาสปอตของ Uniswap V3 และใช้ประโยชน์จากวิธีการที่สัญญา Hypervisor คำนวณมูลค่าของผู้ให้บริการสภาพคล่อง
รายละเอียดการโจมตี
SlowMist กล่าวเมื่อวันที่ 31 สิงหาคมว่า ผู้โจมตีได้บิดเบือนราคาสปอตของ Uniswap V3 slot0 ทำให้สัญญา Hypervisor ที่ได้รับผลกระทบคำนวณมูลค่าหุ้น LP ผิดพลาด บริษัทความปลอดภัยบล็อกเชนได้ติดตามการโจมตีไปยังฟังก์ชันที่ขาดการตรวจสอบ TWAP หรือ oracle และการป้องกันการลื่นไถล
SlowMist TI Alert Loss: ~$28,000 (10.71 ETH)
สาเหตุหลัก: การจัดการราคาสปอตของ Uniswap V3 (slot0) ผ่านการกู้ยืมแบบชั่วคราวทำให้เกิดการตั้งราคาหุ้น LP ผิดพลาดในสัญญา Hypervisor ฟังก์ชันที่สำคัญขาดการตรวจสอบ TWAP/oracle และการป้องกันการลื่นไถล…
กลยุทธ์ของผู้โจมตี
โดยใช้การแลกเปลี่ยนขนาดใหญ่ในพูลสภาพคล่อง V3 ที่อยู่เบื้องหลัง ผู้โจมตีได้จัดการค่าที่ส่งคืนโดย currentTick และ getTotalAmounts SlowMist กล่าวว่าผู้โจมตีได้ฝากและถอนเงินซ้ำแล้วซ้ำอีกในขณะที่สัญญา Hypervisor ทำงานด้วยมูลค่าหุ้นที่สูงเกินจริง
บริษัทความปลอดภัยได้ระบุที่อยู่ของผู้โจมตีว่า 0xaea29218262dc6b0904ca077f6527c49dfd426d9 และสัญญาการโจมตีว่า 0xb46655eb5b77de277063a75586d1883e951b6c54
ช่องโหว่ที่ถูกระบุ
สัญญาที่มีช่องโหว่สองรายการถูกระบุว่าเป็น 0x85cbed523459b7f6f81c11e710df969703a8a70c และ 0xc86b1e7fa86834cac1468937cdd53ba3ccbc1153 ขณะที่พูลสภาพคล่องที่อยู่เบื้องหลังถูกระบุว่าเป็น 0xe8c2036068fc3b0161ee1def0e8d01df4eac0ac
ผลกระทบจากการโจมตี
การโจมตีมุ่งเน้นไปที่วิธีที่สัญญาที่ได้รับผลกระทบได้รับข้อมูลการตั้งราคา จากพูล Uniswap V3 ที่อยู่เบื้องหลัง SlowMist กล่าวว่าการซื้อขายขนาดใหญ่ทำให้ผู้โจมตีสามารถบิดเบือน slot0 ซึ่งมีข้อมูลราคาปัจจุบันและข้อมูล tick ของพูล
เมื่อราคาของพูลถูกเปลี่ยนแปลง การจัดการทำให้ค่าที่ส่งคืนโดย currentTick และ getTotalAmounts เปลี่ยนไป สัญญา Hypervisor ที่ได้รับผลกระทบใช้ข้อมูลที่ถูกเปลี่ยนแปลงเพื่อคำนวณมูลค่าหุ้น LP ซึ่งทำให้ผู้โจมตีสามารถโต้ตอบกับสัญญาในขณะที่หุ้นเหล่านั้นถูกตั้งราคาไม่ถูกต้อง
การกู้ยืมแบบชั่วคราว
การกู้ยืมแบบชั่วคราวจัดหาทุนชั่วคราวที่จำเป็นในการทำการซื้อขายขนาดใหญ่ ตามที่ crypto.news อธิบายก่อนหน้านี้ การกู้ยืมแบบชั่วคราวอนุญาตให้ยืมสินทรัพย์โดยไม่ต้องมีหลักประกันล่วงหน้า ตราบใดที่เงินกู้และค่าธรรมเนียมถูกชำระคืนภายในธุรกรรมบล็อกเชนเดียว
หากไม่มีการชำระคืน ธุรกรรมทั้งหมดจะถูกย้อนกลับ กลไกนี้ช่วยให้ผู้ค้าเข้าถึงสภาพคล่องชั่วคราวจำนวนมากสำหรับการเก็งกำไร การแลกเปลี่ยนหลักประกัน และการชำระบัญชี แต่สภาพคล่องเดียวกันนี้สามารถใช้เพื่อใช้ประโยชน์จากการตั้งราคาหรือตรรกะของสัญญาอัจฉริยะที่มีช่องโหว่
บทสรุป
ในการวิเคราะห์ Float Protocol ของ SlowMist ได้ระบุว่าการสูญเสียเกิดจากสัญญาที่พึ่งพาราคาสปอตที่สามารถจัดการได้โดยไม่มีการตรวจสอบที่สามารถยืนยันกับราคาน้ำหนักเฉลี่ยตามเวลา (TWAP) หรือ oracle อื่น ๆ ฟังก์ชันที่สำคัญยังขาดการป้องกันการลื่นไถลตามที่บริษัทความปลอดภัยกล่าว
SlowMist กล่าวว่าผู้โจมตีไม่ได้หยุดหลังจากเปลี่ยนราคาของพูล Uniswap V3 เมื่อ slot0 ถูกบิดเบือน ผู้โจมตีได้ฝากและถอนเงินซ้ำแล้วซ้ำอีกจากสัญญาที่ได้รับผลกระทบโดยใช้การคำนวณมูลค่าหุ้น LP ที่สูงเกินจริง
ลำดับเหตุการณ์นี้ทำให้สามารถดึงมูลค่าออกมาได้ในขณะที่สัญญาพึ่งพาสถานะพูลที่ถูกจัดการ
SlowMist ประเมินการสูญเสียสุดท้ายที่ประมาณ 10.71 ETH ซึ่งมีมูลค่าประมาณ 28,000 ดอลลาร์ เมื่อเผยแพร่การแจ้งเตือน