Yearn Finance เปิดเผยข้อผิดพลาดทางคณิตศาสตร์ที่นำไปสู่การ “mint ไม่จำกัด” yETH มูลค่า 9 ล้านดอลลาร์สหรัฐ

TapChiBitcoin
ETH2%
YFI0.29%

โปรโตคอล DeFi Yearn Finance ได้ประกาศรายงาน post-mortem เกี่ยวกับเหตุการณ์โจมตี yETH ที่เกิดขึ้นเมื่อสัปดาห์ที่แล้ว โดยระบุว่าข้อผิดพลาดทางคณิตศาสตร์ในพูล stableswap เวอร์ชันเก่าเปิดโอกาสให้ผู้โจมตี “mint โทเค็น LP เกือบไม่จำกัด” และถอนสินทรัพย์ประมาณ 9 ล้านดอลลาร์ Yearn ยังยืนยันว่าสามารถกู้คืนเงินบางส่วนที่ถูกขโมยกลับมาได้แล้ว

เหตุการณ์และกลไกการโจมตี

ตามข้อมูลจาก Yearn, pool yETH weighted stableswap ถูกโจมตีที่บล็อก 23,914,086 วันที่ 30/11/2025 หลังจากชุดการดำเนินการที่ซับซ้อนทำให้ตัวแก้ไข (solver) ของพูลเข้าสู่สถานะผิดปกติและนำไปสู่ข้อผิดพลาด arithmetic underflow

vault v2, v3 และผลิตภัณฑ์อื่นๆ ไม่ได้รับผลกระทบ; ความเสียหายเกิดขึ้นเฉพาะที่ yETH และการผสานรวมที่เกี่ยวข้อง

พูลที่ถูกโจมตีคือ stableswap แบบกำหนดเองที่รวมโทเค็น liquid staking (LST) หลายรายการ เช่น apxETH, sfrxETH, wstETH, cbETH, rETH, ETHx, mETH, wOETH ร่วมกับพูล yETH/WETH โดยก่อนเกิดเหตุ พูลเหล่านี้ถือครอง LST หลายรายการและ 298.35 WETH

สามขั้นตอนการโจมตีและเส้นทาง “mint ไม่จำกัด”

Post-mortem แบ่งการโจมตีออกเป็นสามขั้นตอน:

  1. สร้างความไม่สมดุลรุนแรงใน add_liquidity

ผู้โจมตีส่งเงินฝากสภาพคล่องที่เบ้มาก ดัน solver ของพูลเข้าสู่โซนที่อยู่นอกเหนือการออกแบบ ส่งผลให้ตัวแปรภายใน (Π) ลดลงเหลือ 0 ทำให้ invariant ของ weighted stableswap แตก และเปิดทางให้ over-mint โทเค็น LP ได้จำนวนมาก 2. ถอนสินทรัพย์จนเกือบหมดด้วย remove_liquidity

ด้วยโทเค็น LP ที่ถูก mint เกิน ผู้โจมตีเรียกใช้ remove_liquidity และฟังก์ชันที่เกี่ยวข้องซ้ำๆ เพื่อถอน LST เกือบทั้งหมด พร้อมผลักภาระต้นทุน mint ผิดพลาดไปยังสภาพคล่องที่โปรโตคอลถือครองเอง (POL) ขั้นตอนนี้ทำให้ซัพพลายภายในของพูลลดเหลือ 0 แม้ยอดคงเหลือ ERC-20 จะยังเหลืออยู่ 3. เปิดใช้งาน “bootstrap” อีกครั้งและสร้าง mint ไม่จำกัด

ผู้โจมตีวนกลับมาใช้เส้นทางตั้งค่าพูลที่ควรใช้แค่ตอนดีพลอยครั้งแรก ด้วยการส่งค่ากำหนด “dust” ที่ละเมิดข้อกำหนดของ domain data ทำให้เกิด unsafe_sub และ underflow สร้าง yETH LP จำนวน “quasi-infinite” จากนั้นนำไปถอนพูล yETH/ETH บน Curve จนหมด

การกู้คืนสินทรัพย์และทิศทางการดำเนินการ

Yearn ระบุว่าสามารถกู้คืน pxETH ได้ 857.49 โดยความร่วมมือกับ Plume และ Dinero; ธุรกรรมกู้คืนเสร็จสิ้นวันที่ 1/12 โดยเงินจำนวนนี้จะถูกแจกจ่ายตามสัดส่วนให้กับผู้ฝาก yETH ตามยอดคงเหลือก่อนถูกโจมตี

ETH ที่ถูกขโมยประมาณ 1,000 ถูกส่งเข้า Tornado Cash ในคืนเกิดเหตุ ที่เหลือก็ถูกโอนไปที่ Tornado วันที่ 5/12 The Block เคยรายงานว่า ETH มูลค่าประมาณ 3 ล้านดอลลาร์ถูกส่งเข้า mixer ทันทีหลังการโจมตี

Yearn เน้นว่า yETH ใช้กลไก self-governance ตาม YIP-72 พร้อมเงื่อนไข “Use at Own Risk” และยืนยันว่าทีม Yearn รวมถึงชุมชน YFI ไม่รับผิดชอบในการชดเชยใดๆ ทรัพย์สินที่กู้คืนได้ทั้งหมดจะคืนให้กับผู้ใช้ที่ได้รับผลกระทบ

แผนการแก้ไข

เพื่อป้องกันเหตุการณ์ซ้ำ Yearn เสนอแนวทางดังนี้:

  • เพิ่มการตรวจสอบ domain condition ที่ชัดเจนใน solver; หาก Π = 0 ให้ถือว่าเป็นข้อผิดพลาดร้ายแรง
  • แทนที่การคำนวณที่ไม่ปลอดภัยทั้งหมดด้วย checked math ในส่วนที่สำคัญ
  • ปิดใช้งานหรือจำกัด logic ของ bootstrap เมื่อพูลอยู่ในสถานะใช้งานแล้ว
  • กำหนดขีดจำกัดแบบ hard cap สำหรับ LP ตามมูลค่าที่ฝากจริง
  • ขยายขอบเขตการทดสอบ เช่น fuzzing แบบ invariant, ทดสอบเลขคณิตแบบตรงข้าม และ cross-check กับโมเดล off-chain

Yearn ขอบคุณ ChainSecurity สำหรับการสนับสนุนวิเคราะห์สาเหตุราก และ SEAL 911 สำหรับการตอบสนองฉุกเฉินและการกู้ทรัพย์สิน การสืบสวนและติดตามเส้นทางเงินของผู้โจมตียังคงดำเนินต่อไป

เวียงเถียน

ดูต้นฉบับ
news.article.disclaimer
แสดงความคิดเห็น
0/400
ไม่มีความคิดเห็น