Radix Foundation เปิดเผยเมื่อวันที่ 17 กันยายนว่า ช่องโหว่ใน Radix Engine ซึ่งเกิดจากการปรับโครงสร้างโค้ดของเครือข่ายในปี 2023 ถูกผู้โจมตีนำมาใช้เมื่อเดือนสิงหาคม ส่งผลให้สินทรัพย์มูลค่าประมาณ 1.26 ล้านดอลลาร์ถูกโอนออกจากคลังสินทรัพย์หลายแห่ง ผู้ตรวจสอบเครือข่ายหรือวาลิเดเตอร์จึงระงับฉันทามติของเครือข่ายชั่วคราว และธุรกรรมบนบล็อกเชนหยุดลงนานกว่า 10 วัน
ผลกระทบของเหตุการณ์ไม่ได้จำกัดอยู่ที่มูลค่าสินทรัพย์ที่ถูกขโมย การตรวจสอบพบว่าในทางทฤษฎี ช่องโหว่นี้อาจถูกใช้โจมตีคลังสินทรัพย์ใดก็ได้บนเครือข่าย ไม่ว่าจะเป็นบัญชีผู้ใช้ สินทรัพย์ของแอปพลิเคชัน หรือโทเคนในพูลสภาพคล่อง สำหรับแพลตฟอร์มซื้อขายและผู้ให้บริการสภาพคล่อง ประเด็นสำคัญคือกลไกการประมวลผลระดับพื้นฐานไม่สามารถบังคับใช้ขอบเขตสิทธิ์ที่ควรป้องกันสินทรัพย์ได้ตามปกติ
ธุรกรรม 26 รายการโอนสินทรัพย์หลายประเภท
การสร้างบัญชีแยกประเภทของชุมชน Radix ระบุว่า ผู้โจมตีดำเนินธุรกรรมที่ใช้ประโยชน์จากช่องโหว่ 26 รายการ ระหว่างเวลา 16:02 น. ถึง 16:57 น. ตามเวลา UTC ของวันที่ 31 สิงหาคม โดยโอน USDC ประมาณ 458,915 เหรียญ USDT 72,420 เหรียญ ETH 61.08 เหรียญ Wrapped Bitcoin 6.35 เหรียญ SOL 536.16 เหรียญ และ BNB 32.91 เหรียญ
เมื่อคำนวณด้วยราคาตลาดวันที่ 31 สิงหาคม สินทรัพย์ทั้งหมดมีมูลค่าราว 1.26 ล้านดอลลาร์ โดย USDC และ USDT รวมกันคิดเป็นประมาณ 531,300 ดอลลาร์
ผู้โจมตียังถอน XRD จำนวน 13,000 เหรียญจากคลังสินทรัพย์แห่งหนึ่งเพื่อนำไปชำระค่าธรรมเนียมธุรกรรม หลังจากนั้นสินทรัพย์ที่ถูกขโมยถูกโอนผ่าน Hyperlane ไปยัง Ethereum, BNB Chain และ Solana ก่อนถูกแลกเป็น ETH
Radix Foundation ระบุว่า บริดจ์ Hyperlane ทำงานตามการออกแบบ การโอนเกิดขึ้นหลังจากผู้โจมตีเข้าถึงสินทรัพย์ผ่าน Radix Engine แล้ว และขณะนี้ยังไม่มีสัญญาณว่าคีย์ส่วนตัวถูกเปิดเผย
อย่างไรก็ตาม มูลค่าความเสียหายอาจสูงกว่ายอดสินทรัพย์ที่ถูกโอนออกโดยตรง ผู้ตรวจสอบเห็นว่า ช่องโหว่นี้ไม่ได้จำกัดผลกระทบอยู่เฉพาะสินทรัพย์ข้ามเครือข่ายที่ผู้โจมตีถอนออก แต่โทเคนและสินทรัพย์ในคลังอื่นบนเครือข่ายก็อาจเผชิญความเสี่ยงในลักษณะเดียวกัน
ต้นตออยู่ที่การปรับโครงสร้าง Radix Engine ในปี 2023
Radix Foundation ระบุว่า ข้อบกพร่องเกิดขึ้นในเดือนมิถุนายน 2023 ระหว่างที่ทีมพัฒนา RDX Works ปรับปรุงและจัดระเบียบโค้ดของ Radix Engine ช่องโหว่นี้จึงอยู่ในระบบนานกว่าสามปี ก่อนถูกนำมาใช้โจมตีในวันที่ 31 สิงหาคม 2026
ปัญหาเกี่ยวข้องกับวิธีที่เอนจินจัดการการอ้างอิงคลังสินทรัพย์ ธุรกรรมสามารถใช้ที่อยู่ภายในเพื่อชี้ไปยังคลังของผู้ใช้อีกราย และส่งการอ้างอิงดังกล่าวต่อไปยังสมาร์ตคอนแทรกต์บางประเภท จากนั้น Radix Engine อนุญาตให้เรียกใช้ฟังก์ชันถอนสินทรัพย์ทั่วไป โดยไม่ได้ตรวจสอบสิทธิ์ความเป็นเจ้าของอย่างถูกต้อง จึงไม่สามารถปฏิเสธคำขอที่ไม่ได้รับอนุญาตได้
ตามการออกแบบปกติ การถอนสินทรัพย์จากคลังควรทำได้เฉพาะเจ้าของคลังหรือธุรกรรมที่ได้รับอนุญาตเท่านั้น แต่ข้อบกพร่องนี้เปิดโอกาสให้ผู้โจมตีเข้าถึงเงินในบัญชีผู้ใช้ แอปพลิเคชัน และพูลสภาพคล่องได้โดยไม่ต้องมีลายเซ็นจากเจ้าของสินทรัพย์
ปัญหาดังกล่าวยังเคยผ่านการตรวจสอบความปลอดภัยโดยหน่วยงานอิสระ Zellic ได้ตรวจสอบโปรโตคอล Radix ในปี 2024 โดยขอบเขตการตรวจสอบรวมถึงแกนหลักของเอนจินที่มีข้อบกพร่องอยู่ด้วย แต่ไม่พบช่องโหว่ด้านการอนุญาตนี้ เหตุการณ์จึงสะท้อนว่า การปรับปรุงโค้ดตามปกติอาจเปลี่ยนสมมติฐานด้านความปลอดภัยเดิม และการตรวจสอบทั่วไปอาจไม่สามารถตรวจจับการเปลี่ยนแปลงลักษณะนี้ได้เสมอไป
วาลิเดเตอร์ระงับฉันทามติเพื่อหยุดธุรกรรมเพิ่มเติม
เมื่อผู้ตรวจสอบยืนยันว่าปัญหาอยู่ที่ชั้นประมวลผลธุรกรรม ไม่ใช่แอปพลิเคชันใดแอปพลิเคชันหนึ่ง วาลิเดเตอร์ของ Radix ได้ประสานงานกันและนำสัดส่วนสินทรัพย์ที่ใช้ค้ำประกันออกจากระบบในจำนวนที่เพียงพอ เพื่อไม่ให้เครือข่ายบรรลุฉันทามติและประมวลผลธุรกรรมเพิ่มเติม
เครือข่ายหยุดทำงานนานกว่า 10 วัน การแก้ไขโปรโตคอลได้เพิ่มการตรวจสอบใหม่เพื่อห้ามการใช้การอ้างอิงคลังสินทรัพย์ที่ถูกจำกัดกับฟังก์ชันถอนทั่วไป โดยการสร้างบัญชีแยกประเภทของชุมชนระบุว่า ธุรกรรมของผู้ใช้กลับมาเปิดให้บริการอีกครั้งในวันที่ 11 กันยายน
เหตุการณ์นี้ยังสร้างความเสียหายต่อเนื่องให้กับพูลสภาพคล่อง หลังจากผู้โจมตีนำสินทรัพย์ข้ามเครือข่ายออกจากฝั่งหนึ่งของคู่ซื้อขาย อัตราส่วนราคาภายในพูลบางแห่งจึงบิดเบือน และบัญชีอีกรายหนึ่งใช้ประโยชน์จากความผิดปกติของราคาเพื่อถอน XRD หลายล้านเหรียญจากพูลที่ได้รับผลกระทบ เหตุการณ์ดังกล่าวแสดงให้เห็นว่า แม้สินทรัพย์ที่ถูกขโมยในช่วงแรกจะออกจากเครือข่ายไปแล้ว ช่องโหว่ในชั้นประมวลผลยังสามารถสร้างความเสียหายทางเศรษฐกิจเพิ่มเติมผ่านราคาที่คลาดเคลื่อนและการเปลี่ยนแปลงของสภาพคล่อง
Radix เพิ่มการทดสอบและยกระดับแผนรับเหตุฉุกเฉิน
Radix Foundation ระบุว่า มาตรการหลังเหตุการณ์จะรวมถึงการเพิ่มการทดสอบแบบรีเกรสชัน การยกระดับขั้นตอนตรวจสอบความปลอดภัย และการกำหนดให้การดำเนินการฉุกเฉินของวาลิเดเตอร์เพื่อฟื้นฟูความปลอดภัยของเครือข่ายเป็นส่วนหนึ่งของกระบวนการอย่างเป็นทางการ การแก้ไขไม่ได้มุ่งเพียงปิดเส้นทางโค้ดที่ถูกใช้โจมตีแล้ว แต่ยังรวมถึงการทบทวนการเปลี่ยนแปลงโค้ดทั้งหมดที่เกี่ยวข้องกับตรรกะการอนุญาต
Foundation ยังระบุว่า งานด้านความปลอดภัยในอนาคตต้องคำนึงถึงเครื่องมือวิเคราะห์โค้ดที่ใช้ AI ซึ่งมีความสามารถเพิ่มขึ้น และเครื่องมือประเภทนี้อาจช่วยให้ผู้โจมตีค้นหาข้อบกพร่องที่มีอยู่ในระบบมานานหลายปีได้ อย่างไรก็ตาม การเปิดเผยข้อมูลในปัจจุบันยังไม่ได้ยืนยันว่าผู้โจมตีใช้เครื่องมือใดโดยเฉพาะ
สำหรับนักพัฒนาและวาลิเดเตอร์ ประเด็นสำคัญหลังจากนี้คือการป้องกันไม่ให้งานบำรุงรักษาทั่วไปเปลี่ยนโมเดลสิทธิ์โดยผ่านการทดสอบและการทบทวนที่ไม่เพียงพอ ส่วนผู้ใช้และผู้ให้บริการสภาพคล่องจะติดตามว่าเครือข่ายสามารถตรวจสอบสิทธิ์ความเป็นเจ้าของคลังได้อย่างถูกต้องต่อเนื่องหรือไม่ และกระบวนการฉุกเฉินใหม่จะเริ่มทำงานได้รวดเร็วเพียงใดหากเกิดเหตุลักษณะเดียวกัน ซึ่งจะเป็นปัจจัยต่อการประเมินความปลอดภัยของสินทรัพย์ Radix และเสถียรภาพของเครือข่าย