สรุปข่าว
- ทีมพัฒนา Bitcoin Core เปิดเผยช่องโหว่ที่ส่งผลกระทบต่อซอฟต์แวร์เวอร์ชันเก่า เปิดช่องให้นักขุดสามารถโจมตีหน่วยความจำเพื่อรันรหัสคำสั่งบนเครื่องของเหยื่อได้
- บั๊กนี้ถูกค้นพบตั้งแต่ปลายปี 2024 แต่ทีมพัฒนาจงใจแก้ไขปัญหาเงียบๆ และรอจนถึงเมษายน 2026 ให้เวอร์ชันที่มีปัญหาหมดระยะสนับสนุนถึงค่อยออกมาบอก
- ช่องโหว่นี้ถึงจะร้ายแรงแต่ยังไม่มีรายงานการโจมตีจริง เนื่องจากนักขุดต้องใช้ต้นทุนมหาศาลเพื่อสร้างบล็อกพิเศษที่ไม่ได้รางวัลทำให้ต้องแบกรับค่าไฟไปฟรีๆ
แนวโน้มผลกระทบ: Neutral
ความมั่นคงของเครือข่าย Bitcoin สั่นคลอนเล็กน้อยหลังมีการเปิดเผยช่องโหว่ CVE-2024-52911 ซึ่งเป็นบั๊กด้านความปลอดภัยของหน่วยความจำที่ยอมให้นักขุดสามารถรันรหัสคำสั่งจากระยะไกลและสั่งล่มโหนด Bitcoin Core เวอร์ชันเก่าได้ โดยความน่าสนใจอยู่ที่ทีมพัฒนาได้ค้นพบและแอบแก้ไขบั๊กนี้ไปตั้งแต่ออกเวอร์ชัน 29.0 ในปี 2025 แต่เลือกที่จะเก็บข้อมูลเป็นความลับนานถึง 2 ปีเพื่อป้องกันการตื่นตระหนกและรอให้โหนดส่วนใหญ่ทำการอัปเกรดให้เรียบร้อยเสียก่อน
ทีมนักพัฒนา Bitcoin Core ล่าสุดได้มีการเปิดเผยว่าพวกเขามีการค้นพบ “บั๊ก” ช่องโหว่ในระบบของ Bitcoin ที่ทำให้นักขุดสามารถสั่งปิดระบบจากระยะไกลและรันรหัสคำสั่งบนโหนดของผู้อื่นได้
ช่องโหว่ดังกล่าวมีรหัส CVE-2024-52911 ซึ่งส่งผลกระทบต่อ Bitcoin Core ตั้งแต่เวอร์ชัน 0.14.1 ไปจนถึง 28.4 โดย Cory Fields นักพัฒนาโปรแกรมได้รับหน้าที่ช่วยแก้ไขข้อผิดพลาดที่มีความรุนแรงระดับสูงนี้ผ่านทางข้อเสนอ Pull Request หมายเลข 31112
นับว่าเป็นโชคดีที่ช่องโหว่นี้ยังไม่เป็นที่ล่วงรู้ในวงกว้าง และมีโอกาสน้อยมากที่จะถูกนำไปใช้งานจริง เนื่องจากวิธีการโจมตีดังกล่าวนั้นมีต้นทุนที่สูงมหาศาล แต่หากนักขุดคนใดใช้กลโกงสายมืดนี้ พวกเขาก็จะสามารถรันโค้ดซอฟต์แวร์บนโหนดต่าง ๆ ที่กระจายอยู่ทั่วโลกได้ทันที
สำหรับรูปแบบการโจมตีนี้กำหนดให้เหล่านักขุดต้องยอมทุ่มกำลังขุดที่กินพลังงานไฟฟ้ามหาศาลเพื่อขุดบล็อกประเภทพิเศษขึ้นมา
โดยบล็อกพิเศษที่กำเนิดขึ้นมาจากกำลังขุดที่มากเพียงพอ จะสามารถสั่งให้โหนดของเหยื่อหยุดการทำงาน และ/หรือ ใช้จังหวะที่ระบบล่มนั้นเข้าไปควบคุมหน่วยความจำเพื่อทำการรันรหัสคำสั่งจากระยะไกลได้
อย่างไรก็ตาม แม้ว่ากลไกการโจมตีจะเข้าใจได้ง่าย แต่การลงมือทำจริงนั้นกลับมีต้นทุนที่สูงมาก เพราะต้นทุนค่าเสียโอกาสนั้นเกิดขึ้นแน่นอน เนื่องจากบล็อกที่ผิดเงื่อนไขเหล่านี้จะไม่ได้รับสิทธิ์ในการรับรางวัลบล็อกใหม่ เพื่อนำมาหักลบกับค่าไฟฟ้าที่เสียไป หรือก็คือทำไปก็ไม่ได้เงินกลับมา
ทีมพัฒนา Bitcoin Core ยอมรับว่า การรันรหัสคำสั่งจากระยะไกลนั้นสามารถทำได้จริง แม้จะไม่มีการระบุตัวอย่างเหตุการณ์ที่เกิดขึ้นจริงก็ตาม โดยทีมพัฒนาได้เน้นย้ำว่า นอกจากเรื่องต้นทุนที่สูงและอายุของบั๊กที่เก่ามากแล้ว ข้อจำกัดของข้อมูลภายในบล็อกยังเป็นอีกปัจจัยที่ทำให้ในเชิงประวัติศาสตร์แล้ว แทบจะเป็นไปไม่ได้เลยที่เหล่านักขุดจะเข้ามาบงการระบบผ่านช่องโหว่นี้
Bitcoin Core อธิบายว่าบั๊กนี้คือเหตุการณ์ “ตัวแปลชุดคำสั่งล่ม” ซึ่งโดยปกติในระหว่างการตรวจสอบความถูกต้องของบล็อก ซอฟต์แวร์ Bitcoin Core จะทำการคำนวณข้อมูลล่วงหน้าและจัดเก็บข้อมูลธุรกรรมไว้ในหน่วยความจำชั่วคราวจากนั้นจะส่งงานตรวจสอบชุดคำสั่งไปยังเธรดเบื้องหลังของคอมพิวเตอร์เพื่อประมวลผล
หากถูกโจมตีด้วยช่องโหว่ CVE-2024-52911 โหนดอาจยังคงพยายามอ่านข้อมูลจากหน่วยความจำชั่วคราวนั้น ทั้งที่ข้อมูลดังกล่าวถูกกระบวนการอื่นลบทิ้งออกจากหน่วยความจำไปเรียบร้อยแล้ว
ในอีกกรณีหนึ่ง การรันรหัสคำสั่งจากระยะไกลอาจเกิดขึ้นเมื่อเธรดเบื้องหลังของโหนดพยายามอ่านข้อมูลธุรกรรมที่คำนวณไว้ล่วงหน้า หลังจากที่ข้อมูลนั้นถูกทำลายไปแล้วโดยกระบวนการตรวจสอบชุดคำสั่งที่เรียกว่า CScriptCheck
เนื่องจากการอัปเกรดโหนด Bitcoin เป็นไปตามความสมัครใจและไม่มีการอัปเดตอัตโนมัติ จึงมีเครือข่ายจำนวนไม่น้อยที่ยังคงล่าช้าและไม่การอัปเกรดเป็นเวอร์ชัน 29 หรือสูงกว่า โดยข้อมูลประมาณว่ามีโหนด Bitcoin มากถึง 43% ที่ยังคงใช้งานซอฟต์แวร์เวอร์ชันเก่าที่ต่ำกว่า v29 ซึ่งยังคงมีช่องโหว่นี้อยู่
เก็บความลับ 2 ปี
แม้จะเพิ่งมีการยืนยันการมีอยู่ของช่องโหว่ดังกล่าวเมื่อไม่นานมานี้ แต่ในความเป็นจริงแล้วบั๊กตัวนี้ถูกค้นพบมาตั้งแต่ปี 2024 แต่ทางทีมพัฒนาเลือกที่จะเก็บซ่อนความลับนี้ไว้นานถึง 2 ปี ก่อนจะยอมเผยข้อมูลออกมา
ย้อนกลับไปในช่วงต้นเดือนพฤศจิกายน 2024 Cory Fields ได้ตรวจพบและรายงานช่องโหว่นี้และเพียง 4 วันหลังจากการตรวจพบ Pieter Wuille ได้เสนอแนวทางการแก้ไขผ่าน Pull Request หมายเลข 31112 โดยใช้ชื่อหัวข้อว่า “ปรับปรุงการบันทึกข้อมูลการตรวจสอบข้อผิดพลาดของสคริปต์แบบคู่ขนาน
คำอธิบายประกอบนั้น ถูกเขียนขึ้นอย่างจงใจให้ดูเหมือนงานซ่อมบำรุงระบบพื้นฐานทั่วไปเพื่อไม่ให้เกิดการตื่นตระหนก และเป็นการซ่อนความลับและจุดอ่อนจากมิจฉาชีพ โดยเนื้อหาเป็นการแก้ไขระบบการจัดการคิว และการตรวจสอบสคริปต์ของ Bitcoin Core
ข้อเสนอดังกล่าวของ Fields และ Wuille ได้รับการยอมรับอย่างรวดเร็วและถูกรวมเข้าสู่ระบบหลักภายในเดือนธันวาคม 2024 ต่อมา Bitcoin Core เวอร์ชัน 29.0 ซึ่งมีการแก้ไขช่องโหว่เรียบร้อยแล้วจึงได้ถูกปล่อยออกมาในเดือนเมษายน 2025
ส่วนสาเหตุที่ทำให้พวกเขาต้องรอเวลาอีกนานเป็นปีเพื่อบอกเล่าข้อมูลชุดนี้เป็นผลมาจากการที่ทีมพัฒนาได้รอจนกว่าระยะเวลาการสนับสนุนของซอฟต์แวร์เวอร์ชัน 28.x ที่มี่ปัญหา หมดลงอย่างสมบูรณ์ในวันที่ 19 เม.ย. 2026 เพื่อให้มั่นใจได้ว่าจะไม่มีผลกระทบต่อระบบนิเวศ และเป็นการมอบเวลาให้โหนดทำการอัปเกรดให้แล้วเสร็จ
Niklas Gögge นักพัฒนา Bitcoin Core ตั้งข้อสังเกตว่านี่คือครั้งแรกที่ Bitcoin มีปัญหาด้านความปลอดภัยของหน่วยความจำและได้ขอบคุณ Fields สำหรับการเปิดเผยข้อมูลอย่างมีความรับผิดชอบในครั้งนี้
ที่มา : Protos
มุมมองผู้เขียน : ครั้งนี้ถือเป็นโชคดีมากที่ไม่มีใครล่วงรู้ถึงจุดอ่อนนี้ แต่เหตุการณ์นี้ได้เป็นการพิสูจน์ว่าทำไม Bitcoin ถึงพิเศษเพราะต่อให้ล่วงรู้ถึงวิธีการแต่ก็ไม่มีใครอยากจะทำเพราะมันไม่คุ้ม ได้เพียงแค่ความสะใจแต่ไม่ได้เงินกลับมาแถมยังจะเสียเงินไปฟรีๆ ด้วย การออกแบบที่ใช้ Incentive Alignment ของ Satoshi Nakamoto จึงได้พิสูจน์อีกครั้งว่ามันใช้ปกป้องบั๊กในซอฟต์แวร์ได้ด้วย

