การโจมตีของตุ่นปากเป็ดใช้ประโยชน์จากการเรียงลำดับรหัสที่ไม่ถูกต้อง ผู้สอบบัญชีกล่าวอ้าง

ข้อจำกัดความรับผิดชอบ: บทความนี้ได้รับการอัปเดตเพื่อแสดงว่า Omniscia ไม่ได้ตรวจสอบเวอร์ชันของสัญญา MasterPlatypusV4 แต่บริษัทได้ตรวจสอบเวอร์ชันของสัญญา MasterPlatypusV1 ตั้งแต่วันที่ 21 พฤศจิกายนถึง 5 ธันวาคม 2021

การโจมตีเงินกู้แฟลช Platypus มูลค่า 8 ล้านดอลลาร์เป็นไปได้เนื่องจากรหัสที่ผิดลำดับ ตาม ไปยังรายงานชันสูตรพลิกศพจาก Omniscia ผู้สอบบัญชีของตุ่นปากเป็ด บริษัทตรวจสอบอ้างว่าไม่มีรหัสที่มีปัญหาในเวอร์ชันที่พวกเขาตรวจสอบ

ตามรายงาน สัญญา MasterPlatypusV4 ของ Platypus “มีความเข้าใจผิดร้ายแรงเกี่ยวกับกลไกการถอนในกรณีฉุกเฉิน” ซึ่งทำให้ดำเนินการ “ตรวจสอบความสามารถในการชำระหนี้ก่อนที่จะอัปเดตโทเค็น LP ที่เกี่ยวข้องกับตำแหน่งเดิมพัน”

รายงานเน้นย้ำว่าโค้ดสำหรับฟังก์ชัน EmergencyWithdraw มีองค์ประกอบที่จำเป็นทั้งหมดเพื่อป้องกันการโจมตี แต่องค์ประกอบเหล่านี้เขียนผิดลำดับตามที่ Omniscia อธิบาย:

“ปัญหานี้สามารถป้องกันได้โดยการสั่งคำสั่ง MasterPlatypusV4::emergencyWithdraw อีกครั้ง และดำเนินการตรวจสอบการละลายหลังจากที่รายการจำนวนเงินของผู้ใช้ถูกตั้งค่าเป็น 0 ซึ่งจะทำให้การโจมตีไม่เกิดขึ้น”

Omniscia ตรวจสอบเวอร์ชันของสัญญา MasterPlatypusV1 ตั้งแต่วันที่ 21 พ.ย. ถึง 5 ธ.ค. 2021 อย่างไรก็ตาม เวอร์ชันนี้ “ไม่มีจุดรวมกับระบบ PlatypusTreasure ภายนอก” ดังนั้นจึงไม่มีบรรทัดรหัสที่เรียงลำดับผิด

สิ่งสำคัญคือต้องสังเกตว่ารหัสที่ถูกโจมตีนั้นไม่มีอยู่ในช่วงเวลาของการตรวจสอบของ Omniscia มุมมองของ Omniscia บอกเป็นนัยว่านักพัฒนาจะต้องปรับใช้สัญญาเวอร์ชันใหม่ ณ จุดใดจุดหนึ่งหลังจากทำการตรวจสอบ

ที่เกี่ยวข้อง เรย์เดียมแจงรายละเอียดแฮก เสนอชดเชยเหยื่อ

ผู้สอบบัญชีอ้างว่าการดำเนินการตามสัญญาที่ Avalanche C-Chain ที่อยู่ 0xc007f27b757a782c833c568f5851ae1dfe0e6ec7 ใช้ประโยชน์. บรรทัดที่ 582–584 ของสัญญานี้ดูเหมือนจะเรียกฟังก์ชันที่เรียกว่า “isSolvent” ในสัญญา PlatypusTreasure และบรรทัดที่ 599–601 ดูเหมือนจะกำหนดจำนวนเงิน ปัจจัย และรางวัลหนี้ของผู้ใช้เป็นศูนย์ อย่างไรก็ตาม จำนวนเงินเหล่านี้จะถูกตั้งค่าเป็นศูนย์หลังจากที่ฟังก์ชัน "isSolvent" ถูกเรียกใช้แล้ว

ทีมงานตุ่นปากเป็ด ได้รับการยืนยัน เมื่อวันที่ 16 ก.พ. ว่าผู้โจมตีใช้ประโยชน์จาก "ข้อบกพร่องในกลไกตรวจสอบการละลายของ USP [the] USP" แต่ทีมงานไม่ได้ให้รายละเอียดเพิ่มเติมในตอนแรก รายงานฉบับใหม่นี้จากผู้สอบบัญชีให้ความกระจ่างเพิ่มเติมว่าผู้โจมตีอาจสามารถใช้ประโยชน์จากช่องโหว่ได้อย่างไร

ทีม Platypus ประกาศเมื่อวันที่ 16 ก.พ. ว่า การโจมตีเกิดขึ้น. ได้พยายามติดต่อแฮ็กเกอร์และรับเงินคืนเพื่อแลกกับค่าบั๊ก ผู้โจมตี ใช้สินเชื่อแฟลช เพื่อดำเนินการหาประโยชน์ซึ่งคล้ายกับกลยุทธ์ที่ใช้ใน การใช้ประโยชน์จากการเงินละลายน้ำแข็ง ในวันที่ 25 ธันวาคม 2022