โปรโตคอล Truebit ถูกโจมตีไปกว่า 26.44 ล้านดอลลาร์ เนื่องจากมีช่องโหว่เกี่ยวกับการทับค่าตัวเลขจำนวนเต็ม

iconOdaily
แชร์
Share IconShare IconShare IconShare IconShare IconShare IconCopy
AI summary iconสรุป

expand icon
โปรโตคอล Truebit ประสบกับการโจมตีที่ทำให้สูญเสียเงิน 26.44 ล้านดอลลาร์เมื่อวันที่ 8 มกราคม ปี 2026 เนื่องจากมีช่องโหว่เกี่ยวกับการเกินค่าของตัวเลขจำนวนเต็ม (integer overflow) ในตรรกะการซื้อโทเคน ผู้โจมตีใช้ช่องโหว่ในฟังก์ชัน 0x1446 โดยใช้ลูปเพื่อจัดการค่าที่ป้อนเข้ามาจำนวนมากและกระตุ้นให้เกิดการคำนวณ ETH ที่ผิดพลาด ช่องโหว่นี้มีต้นกำเนิดจาก Solidity ^0.6.10 ซึ่งไม่มีการตรวจสอบการเกินค่า กรณีนี้แสดงให้เห็นถึงความจำเป็นในการอัปเดตโปรโตคอล และย้ำถึงความเร่งด่วนในการจัดการกับข่าวสารเกี่ยวกับช่องโหว่ใน DeFi ทีมความปลอดภัย ExVul ได้เตือนว่า การโจมตีที่ขับเคลื่อนด้วย AI ต่อโปรโตคอลที่ล้าสมัยอาจเพิ่มขึ้น จึงขอแนะนำให้ทีมต่างๆ ดำเนินการตรวจสอบความปลอดภัย (audit) และติดตั้งระบบเฝ้าระวัง

วันที่ 8 มกราคม ปี 2026 โปรโตคอล Truebit Protocol ถูกโจมตีโดยแฮกเกอร์ ส่งผลให้สูญเสีย ETH จำนวน 8,535.36 หน่วย (ประมาณ 26.44 ล้านดอลลาร์สหรัฐ) ทางทีมงาน Truebit Protocol ได้ยืนยันเหตุการณ์ดังกล่าวผ่านการโพสต์ข้อความทางอย่างเป็นทางการในช่วงเช้าวันถัดมา ทีมงานด้านความปลอดภัย ExVul ได้ทำการวิเคราะห์ช่องโหว่ของเหตุการโจมตีครั้งนี้อย่างละเอียด ผลการวิเคราะห์สรุปดังนี้:

ขั้นตอนการโจมตี

ที่อยู่ของผู้โจมตี:

0x6c8ec8f14be7c01672d31cfa5f2cefeab2562b50

แฮชธุรกรรมการโจมตี:

0xcd4755645595094a8ab984d0db7e3b4aabde72a5c87c4f176a030629c47fb014

ผู้โจมตีสามารถโจมตีสำเร็จได้โดยการส่งธุรกรรมที่เรียกใช้ getPurchasePrice→0xa0296215→0xc471b10b ซ้ำกัน 4 รอบ และต่อไปนี้คือการวิเคราะห์ในรอบแรกเป็นตัวอย่าง

1. ผู้โจมตีเรียกใช้ฟังก์ชัน getPurchasePrice(240442509453545333947284131) ก่อน ซึ่งจะคืนค่า 0

2. ผู้โจมตีเรียกใช้ฟังก์ชัน 0xa0296215(c6e3ae8e2cbab1298abaa3) โดยมีค่า msg.value เท่ากับ 0 และสามารถสร้างโทเคน TRU จำนวน 240442509453545333947284131 ได้สำเร็จ

3. ผู้โจมตีเรียกใช้ฟังก์ชัน 0xc471b10b(c6e3ae8e2cbab1298abaa3) ในที่สุดก็ทำลาย TRU จำนวน 24,044,250,945,354,533,394,728,4131 เหรียญ และได้รับ ETH จำนวน 5105.06 เหรียญ

การวิเคราะห์ตรรกะการโจมตี

จากการศึกษากระบวนการโจมตีดังกล่าวข้างต้น สามารถสังเกตได้อย่างชัดเจนว่ามีปัญหาเกี่ยวกับตรรกะของฟังก์ชัน getPurchasePrice และฟังก์ชัน 0xa0296215 ด้านล่างนี้จะเริ่มวิเคราะห์อย่างลึกซึ้ง (เนื่องจากสัญญานั้นยังไม่ได้เปิดเผยแหล่งที่มา โค้ดที่ใช้ในการวิเคราะห์ด้านล่างนี้จึงเป็นโค้ดที่ถูกดีคอมไพล์)

จากการเปรียบเทียบจุดร่วมของฟังก์ชันทั้งสอง เราสามารถค้นพบว่าฟังก์ชัน 0x1446 ใช้เพื่อคำนวณว่าต้องใช้ ETH จำนวนเท่าใดในการซื้อ TRU ในปริมาณที่กำหนด อย่างชัดเจนว่ามีปัญหาเกี่ยวกับตรรกะของฟังก์ชัน 0x1446 ซึ่งทำให้การคำนวณ ETH ผิดพลาด ด้านล่างนี้คือการวิเคราะห์ตรรกะภายในฟังก์ชัน 0x1446 อย่างละเอียด

ให้สังเกตตรรกะในฟังก์ชัน 0x1446 เนื่องจากผลลัพธ์การคำนวณสุดท้ายคือ v13 == 0 ดังนั้นจึงต้องมีปัญหาเกิดขึ้นในตรรกะการคำนวณข้างต้น ที่ต้องทราบคือฟังก์ชัน 0x18ef มีการทำงานเหมือนกับ _SafeMul ดังนั้นปัญหาจึงอยู่ที่การใช้งานการบวกตัวแปรต้นฉบับ v12 + v9 (เวอร์ชันสัญญาเป็น ^0.6.10 ซึ่งไม่มีการตรวจสอบการล้นค่า)

v12 และ v9 หมายถึง:

จากการวิเคราะห์ดังกล่าว แนวคิดการโจมตีของผู้โจมตีคือการป้อนค่า _amountIn ที่มีขนาดใหญ่มาก เพื่อทำให้เกิดการล้นค่า (overflow) ของ v12 + v9 กลายเป็นค่าที่เล็กมาก และในที่สุดทำให้ (v12 + v9) / v6 เท่ากับ 0

สรุป

เหตุการโจมตีครั้งนี้ของโปรโตคอล Truebit เกิดจากข้อผิดพลาดในตรรกะการคำนวณราคาการซื้อโทเคนที่มีช่องโหว่ร้ายแรงเกี่ยวกับการเกิด integer overflow (การล้นของตัวเลขจำนวนเต็ม) เนื่องจากสัญญาดังกล่าวใช้เวอร์ชัน Solidity ^0.6.10 ซึ่งไม่มีการตรวจสอบความปลอดภัยของการคำนวณทางคณิตศาสตร์ที่สำคัญ จึงส่งผลให้เกิดความสูญเสียอย่างรุนแรงถึง 8,535.36 ETH ปัจจุบันเวอร์ชันใหม่ของ Solidity ได้แก้ไขปัญหา integer overflow ไปแล้ว ดังนั้นเหตุการโจมตีครั้งนี้อาจเป็นการโจมตีที่ผู้โจมตีใช้ AI ในการสแกนหาช่องโหว่ในโปรโตคอล DeFi รุ่นเก่าที่มีอยู่เดิม (เช่น Balancer และ yETH ที่เกิดขึ้นเมื่อไม่นานมานี้) เราเชื่อว่าเหตุการโจมตีที่ใช้ AI โจมตีโปรโตคอล DeFi รุ่นเก่าจะเพิ่มมากขึ้นในช่วงนี้ ดังนั้นเราแนะนำให้ทีมโครงการทำการตรวจสอบความปลอดภัยของโค้ดสัญญาอีกครั้ง หากพบช่องโหว่ควรอัปเกรดสัญญาหรือโอนย้ายสินทรัพย์ให้เร็วที่สุด และติดตามตรวจสอบกิจกรรมบนบล็อกเชนอย่างใกล้ชิด เพื่อให้สามารถตรวจจับความผิดปกติได้ทันทีและลดความเสียหายให้เหลือน้อยที่สุด

แหล่งที่มา:แสดงต้นฉบับ
คำปฏิเสธความรับผิดชอบ: ข้อมูลในหน้านี้อาจได้รับจากบุคคลที่สาม และไม่จำเป็นต้องสะท้อนถึงมุมมองหรือความคิดเห็นของ KuCoin เนื้อหานี้จัดทำขึ้นเพื่อวัตถุประสงค์ในการให้ข้อมูลทั่วไปเท่านั้น โดยไม่มีการรับรองหรือการรับประกัน และจะไม่ถูกตีความว่าเป็นคำแนะนำทางการเงินหรือการลงทุน KuCoin จะไม่รับผิดชอบต่อความผิดพลาดหรือการละเว้นในเนื้อหา หรือผลลัพธ์ใดๆ ที่เกิดจากการใช้ข้อมูลนี้ การลงทุนในสินทรัพย์ดิจิทัลอาจมีความเสี่ยง โปรดประเมินความเสี่ยงของผลิตภัณฑ์และความเสี่ยงที่คุณยอมรับได้อย่างรอบคอบตามสถานการณ์ทางการเงินของคุณเอง โปรดดูข้อมูลเพิ่มเติมได้ที่ข้อกำหนดการใช้งานและเอกสารเปิดเผยข้อมูลความเสี่ยงของเรา