Cobo Security Team: การวิเคราะห์ช่องโหว่ด้านความปลอดภัยที่สำคัญของ LayerZero ซึ่งเป็นโปรโตคอลพื้นฐานของสะ

avatar
Cobo Labs
3ปี ที่แล้ว
ประมาณ 2958คำ,ใช้เวลาอ่านบทความฉบับเต็มประมาณ 4นาที
ช่องโหว่นี้อาจส่งผลกระทบต่อทรัพย์สินของโครงการข้ามเครือข่ายทั้งหมดที่สร้างขึ้นบน LayerZero

เมื่อไม่กี่วันที่ผ่านมา LayerZero ซึ่งเป็นโปรโตคอลพื้นฐานของสะพานข้ามเชนของ Stargate ได้อัปเดตสัญญาการตรวจสอบธุรกรรมเริ่มต้นตามการวิเคราะห์ของทีมรักษาความปลอดภัย Cobo blockchain การอัปเดตนี้ได้แก้ไขช่องโหว่ร้ายแรงในเวอร์ชันก่อนหน้าซึ่งอาจ ทำให้ cross-chain ทั้งหมดที่สร้างขึ้นบน LayerZero ถึง The asset ของโครงการได้รับผลกระทบ

Stargate Financeเป็นโครงการสะพานข้ามโซ่ที่สะดุดตาที่สุดในช่วงไม่กี่วันที่ผ่านมา ณ เวลาที่เผยแพร่ TVL มีมูลค่าเกิน 3.5 พันล้านดอลลาร์สหรัฐ

ชั้นล่างสุดของสะพานข้ามโซ่ของ Stargate ใช้ LayerZero เพื่อให้เกิดการส่งข้อความข้ามสายโซ่ หลักการพื้นฐานเบื้องหลังการส่งข้อความข้ามสายของ LayerZero คือ:

  • ออราเคิลจะส่งบล็อกแฮชและบล็อกใบเสร็จรูทบนเชนต้นทางไปยังเชนเป้าหมาย

  • Relayer จะส่งใบเสร็จรับเงินของธุรกรรมบนห่วงโซ่ต้นทางและความสัมพันธ์ของเส้นทางระหว่างใบเสร็จรับเงินและบล็อกใบเสร็จรูทไปยังเชนเป้าหมาย ในเวลานี้ สัญญาการตรวจสอบธุรกรรมบนเชนเป้าหมายจะขึ้นอยู่กับความสัมพันธ์การพึ่งพาของ Ethereum MPT [ 1] ตรวจสอบความสัมพันธ์ที่สอดคล้องกันระหว่างใบเสร็จรับเงินที่ส่งและใบเสร็จรับเงินรากที่ส่งโดย Oracle

  • หากการยืนยันผ่าน ใบเสร็จจะถือว่าเป็นใบเสร็จตามกฎหมายและส่งต่อไปยังโปรโตคอลชั้นบน เรียกการดำเนินการสินทรัพย์ข้ามสายตามมา

LayerZero อัปเดตสัญญาการตรวจสอบสำหรับการใช้ข้ามเครือข่ายในวันที่ 28 มีนาคมโดยไม่มีการประกาศ [2] ทีมรักษาความปลอดภัยของ Cobo พบว่าการอัปเดตนี้เป็นการแก้ไขช่องโหว่ด้านความปลอดภัยที่สำคัญก่อนหน้านี้ โดยการเปรียบเทียบรหัสของสัญญาการตรวจสอบต้นฉบับ (MPTValidator) และสัญญาการตรวจสอบใหม่ (MPTValidatorV2) [3]

รหัสหลักของแพตช์มีดังนี้:

Cobo Security Team: การวิเคราะห์ช่องโหว่ด้านความปลอดภัยที่สำคัญของ LayerZero ซึ่งเป็นโปรโตคอลพื้นฐานของสะ

เมื่อรหัสช่องโหว่เดิมทำการตรวจสอบ MPT จะได้รับ hashRoot ที่ใช้สำหรับการคำนวณในชั้นถัดไปผ่านตัวชี้ที่ส่งเข้ามาจากภายนอก ที่นี่ ความแข็งแกร่งภายใต้คำสั่งเพิ่ม mload และแอสเซมบลีอื่น ๆ ถูกใช้เพื่อรับ hashRoot จาก ProofBytes เนื่องจากไม่มีการจำกัดความยาวของพอยน์เตอร์ภายในความยาวของ ProofBytes ผู้โจมตีสามารถผ่านพอยน์เตอร์ที่อยู่นอกขอบเขตเพื่อสร้าง สัญญาจะอ่านข้อมูลอื่นที่ไม่ใช่ ProofBytes เป็น hashRoot ชั้นถัดไป ด้วยวิธีนี้มีความเป็นไปได้ที่จะปลอม hashRoot ซึ่งนำไปสู่ความจริงที่ว่าใบเสร็จธุรกรรมปลอมสามารถผ่านการตรวจสอบ MPT ผลลัพธ์สุดท้ายคือ ภายใต้สมมติฐานว่า Oracle ได้รับความไว้วางใจอย่างสมบูรณ์ Relayer ยังคงสามารถโจมตีโปรโตคอลข้ามสายโซ่เพียงฝ่ายเดียวได้โดยการปลอมแปลงข้อมูลใบเสร็จ ซึ่งทำลายข้อสันนิษฐานด้านความปลอดภัยของ LayerZero ก่อนหน้านี้

Oracle ของโปรโตคอล LayerZero ปัจจุบันเป็นสัญญาที่คล้ายกับหลายลายเซ็น หลังจาก 2 ใน 3 ผู้ดูแลระบบส่งข้อมูลเดียวกัน อย่างไรก็ตาม Relayer ถูกควบคุมโดย EOA ที่มีลายเซ็นเดียว และ Relayer ใดๆ ก็สามารถส่งข้อมูลการโจมตีเพื่อให้กระบวนการโจมตีทั้งหมดเสร็จสมบูรณ์ได้

รหัสที่แพตช์ใช้เส้นทางขาเข้าและใช้ฟังก์ชัน safeGetItemByIndex เพื่อรับ hashRoot ของเลเยอร์ถัดไปของ MPT เพื่อให้มั่นใจว่า hashRoot อยู่ใน ProofBytes ปัจจุบัน เพื่อให้การตรวจสอบ MPT สามารถดำเนินการได้อย่างถูกต้อง

รหัสที่เปิดเผยช่องโหว่ในครั้งนี้คือรหัสของส่วนการตรวจสอบธุรกรรม MPT หลักของโปรโตคอล LayerZero และเป็นรากฐานที่สำคัญของการทำงานปกติของโปรโตคอล LayerZero และ Upper-layer ทั้งหมด (เช่น Stargate) แม้ว่าทีมโครงการ LayerZero ได้แก้ไขช่องโหว่ที่เห็นได้ชัดในปัจจุบันแล้ว แต่ก็ไม่สามารถตัดความเป็นไปได้ของช่องโหว่อื่นๆ ที่ถูกโจมตีได้ นอกจากนี้ สัญญาหลักส่วนใหญ่ของโครงการ LayerZero ในปัจจุบันถูกควบคุมโดย EOA และไม่มีกลไกหลายลายเซ็นหรือกลไกล็อคเวลา หากคีย์ส่วนตัวของ EOA ที่มีสิทธิพิเศษเหล่านี้รั่วไหล ทรัพย์สินของโปรโตคอลชั้นบนทั้งหมดอาจได้รับผลกระทบด้วย

ที่นี่ ทีมรักษาความปลอดภัย Cobo blockchain เตือนนักลงทุนให้ใส่ใจกับความเสี่ยงของโครงการใหม่ และในขณะเดียวกันก็เรียกร้องให้ฝ่ายโครงการ LayerZero ทำการตรวจสอบเชิงลึกของรหัสสัญญาและโอนสิทธิ์ที่ควบคุมโดย EOA ปัจจุบันไปยัง หลายลายเซ็นหรือสัญญาแบบล็อกเวลาให้เร็วที่สุด ลดความเสี่ยง การโจมตี

Reference:

https://eth.wiki/fundamentals/patricia-tree

https://etherscan.io/tx/0xf4f0495bfed37d4d95b3342ead0962433c7973f240b9b0739faa91e6ccac9d40

https://www.diffchecker.com/RJdDTCx7

บทความต้นฉบับ, ผู้เขียน:Cobo Labs。พิมพ์ซ้ำ/ความร่วมมือด้านเนื้อหา/ค้นหารายงาน กรุณาติดต่อ report@odaily.email;การละเมิดการพิมพ์ซ้ำกฎหมายต้องถูกตรวจสอบ

ODAILY เตือนขอให้ผู้อ่านส่วนใหญ่สร้างแนวคิดสกุลเงินที่ถูกต้องและแนวคิดการลงทุนมอง blockchain อย่างมีเหตุผลและปรับปรุงการรับรู้ความเสี่ยงอย่างจริงจัง สำหรับเบาะแสการกระทำความผิดที่พบสามารถแจ้งเบาะแสไปยังหน่วยงานที่เกี่ยวข้องในเชิงรุก

การอ่านแนะนำ
ตัวเลือกของบรรณาธิการ