สัปดาห์ที่ผ่านมาอ่านเรื่องราว CRITICAL VULNERABILITY ขนาดขั้น 9.1 ของเฟรมเวิร์ก JavaScript เจ้าดัง เห็นเพื่อน ๆ ในเทเลแกรมกลุ่มเด็ฟเวล็อปเปอร์ในประเทศไทย แทบจะต้องไล่อัพเกรด NextJS กันทั่วหล้า ก็ไม่รู้สึกอะไร เพราะว่าการสร้างและทดลองมิดเดิ้ลแวร์ของบิทคอยเน่อร์ย่อมมีมาตรฐานความปลอดภัยสูงอยู่แล้ว
.
แต่บนโลก Lightning เองก็ยังมีการทำ Disclosure เรื่องความอันตรายบางอย่าง วันนี้มาสรุปให้ฟังนะครับ ใครที่ไม่มีเวลาอ่าน ขอสรุปสั้น ๆ ก่อนว่าต้องอัพเกรดการใช้งานโหนด LND เป็นเวอร์ชั่น 0.18.0 เป็นต้นไป
.
.
ช่องโหว่ที่ได้รับการเผยแพร่โดย 𝗺𝗼𝗿𝗲𝗵𝗼𝘂𝘀𝗲 บน Delving Bitcoin
-----
ในกระบวนการอัปเดตธุรกรรมการชำระเงินในช่อง Lightning Channel มีช่วงเวลาสั้น ๆ ที่หนึ่งในฝ่ายที่เกี่ยวข้องจะถือธุรกรรมที่มีผลบังคับใช้สองรายการพร้อมกัน หากฝ่ายนั้นไม่เพิกถอนธุรกรรมเก่าอย่างเหมาะสม อาจเกิดปัญหาในการจัดการ 𝗛𝗧𝗟𝗖 (Hashed Time-Locked Contract) ที่หายไปจากธุรกรรมที่ได้รับการยืนยัน ซึ่งนำไปสู่ข้อผิดพลาดที่เรียกว่า "Excessive Failback Bug"
.
.
การแก้ไข
-----
LND เวอร์ชัน 0.18.0 ได้แก้ไขข้อผิดพลาดนี้โดยเพิ่มการตรวจสอบ preimage ก่อนที่จะดำเนินการ failback HTLC ซึ่งช่วยป้องกันไม่ให้ระบบส่งข้อความล้มเหลวที่ไม่ถูกต้องและป้องกันข้อมูลในฐานข้อมูลจากการถูกทำเครื่องหมายผิดพลาด
.
.
ข้อค้นพบและบทเรียน
-----
* ช่องโหว่นี้ถูกค้นพบระหว่างการตรวจสอบแพ็กเกจ contractcourt ของ LND
* การอัปเดตมาตรฐาน 𝗕𝗢𝗟𝗧 เพื่อรองรับกรณีนี้สามารถช่วยปรับปรุงความปลอดภัยของระบบ Lightning Network ทั้งหมดได้
.
.
ไทม์ไลน์
-----
2024-03-20: ค้นพบช่องโหว่ และเผยแพร่บนเมลลิ่งลิสท์ของ LND เซเคียวริตี้
2024-04-19: แก้ไขปัญหาเสร็จสิ้น
2024-05-30: LND 0.18.0 รีลีสพร้อมก
2025-02-17: Gijs ได้รับการตอบรับ OK ให้เผยแพร่ข่องโหว่สู่สาธารณะ
2025-03-04: การเผยแพร่ช่องโหว่สู่สาธารณะ
.
.
ที่มา
-----
- บทเผยแพร่ต้นฉบับโดย แม็ท มอร์เฮาส์ - https://morehouse.github.io/lightning/lnd-excessive-failback-exploit/
- บทเผยแพร่และบทสนทนาของบิทเด็ฟส์คนอื่น ๆ - https://delvingbitcoin.org/t/disclosure-lnd-excessive-failback-exploit/1493/7
- รีลีสแรกหลังจากการแก้ไข - https://github.com/lightningnetwork/lnd/releases/tag/v0.18.0-beta
- [BitcoinOptech](nprofile1qqstmwt26vdvdtcj83mg832hwhhzzwx6p78sz83ejn2k5fe8pe5j2agpzemhxue69uhk2er9dchxummnw3ezumrpdejz7qgwwaehxw309ahx7uewd3hkctcpz4mhxue69uhhyetvv9ujuerpd46hxtnfduhsagzf6q) - [Newsletter Recap Podcast episode #346](nevent1qqsdzugelchas5t26x9af74uknr6jywkg2a8rffgxh8ad7tx0a6ay2spzamhxue69uhhyetvv9ujumn0wd68ytnzv9hxgtcpzemhxue69uhk2er9dchxummnw3ezumrpdejz7qgwwaehxw309ahx7uewd3hkctczyz7mj6knrtr27y3uw6pu24m4acsn3ks03uq3uwv5644zwfcwdyjh2qcyqqqqqqgpnt853)
