ข้อจำกัดความรับผิดชอบ: บทความนี้ได้รับการอัปเดตเพื่อแสดงว่า Omniscia ไม่ได้ตรวจสอบเวอร์ชันของสัญญา MasterPlatypusV4 แต่บริษัทได้ตรวจสอบเวอร์ชันของสัญญา MasterPlatypusV1 ตั้งแต่วันที่ 21 พฤศจิกายนถึง 5 ธันวาคม 2021
การโจมตีเงินกู้แฟลช Platypus มูลค่า 8 ล้านดอลลาร์เป็นไปได้เนื่องจากรหัสที่ผิดลำดับ ตาม ไปยังรายงานชันสูตรพลิกศพจาก Omniscia ผู้สอบบัญชีของตุ่นปากเป็ด บริษัทตรวจสอบอ้างว่าไม่มีรหัสที่มีปัญหาในเวอร์ชันที่พวกเขาตรวจสอบ
ในแง่ของเมื่อเร็ว ๆ นี้ @ตุ่นปากเป็ด เกิดเหตุ https://t.co/30PzcoIJnt ทีมงานได้เตรียมการวิเคราะห์หลังการชันสูตรพลิกศพทางเทคนิคเพื่ออธิบายวิธีการเจาะระบบอย่างละเอียด
อย่าลืมติดตาม @Omniscia_sec เพื่อรับการอัปเดตความปลอดภัยเพิ่มเติม!https://t.co/cf784QtKPK pic.twitter.com/egHyoYaBhn
— ออมนิสเซีย (@Omniscia_sec) กุมภาพันธ์ 17, 2023
ตามรายงาน สัญญา 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
ที่มา: https://cointelegraph.com/news/platypus-attack-exploited-incorrect-ordering-of-code-auditor-claims