สรุปสั้น
บริษัทด้านความปลอดภัย runZero เปิดเผยช่องโหว่เจ็ดรายการใน FatFs ไลบรารีระบบไฟล์ขนาดเล็กที่ให้อุปกรณ์อ่านและเขียนรูปแบบ FAT และ exFAT ที่ใช้บน USB drive และ SD card ช่องโหว่เหล่านี้สำคัญเพราะ FatFs อยู่แทบทุกที่ มันฝังอยู่ในเฟิร์มแวร์ที่รันกล้องวงจรปิด โดรน ตัวควบคุมอุตสาหกรรม ฮาร์ดแวร์กระเป๋าเงินคริปโต และอุปกรณ์อื่นๆ ที่สร้างบนระบบปฏิบัติการเรียลไทม์ (RTOS) บนระบบที่ได้รับผลกระทบหนักที่สุด ผู้โจมตีที่สามารถนำ USB drive, SD card หรือไฟล์อัปเดตที่ถูกดัดแปลงเข้าสู่อุปกรณ์ได้ จะสามารถทำให้หน่วยความจำเสียหายและรันโค้ดของตัวเองได้
อุปกรณ์ฝังตัวจำนวนมากขาดการป้องกันหน่วยความจำที่พบในโทรศัพท์และเดสก์ท็อป ซึ่งเป็นเหตุผลที่ runZero ระบุว่า “การเข้าถึงทางกายภาพใดๆ นำไปสู่การ jailbreak” ตู้คีออสก์สาธารณะ กล้องที่มีช่อง SD ตู้ ATM หรือเครื่องลงคะแนนที่มีพอร์ต USB ไม่ควรยอมมอบการควบคุมทั้งหมดหลังถูกเข้าถึงทางกายภาพเพียงชั่วขณะ แต่ในกรณีนี้กลับทำได้ ช่องโหว่ทั้งเจ็ดทำงานในลักษณะพื้นฐานเดียวกันคือ เมื่ออุปกรณ์พยายามอ่านวอลุ่มจัดเก็บข้อมูลหรืออิมเมจเฟิร์มแวร์ที่ถูกทำให้ผิดรูปแบบโดยเจตนา FatFs จะจัดการข้อมูลที่ผิดพลาดนั้นอย่างไม่ถูกต้อง โดย runZero จัดระดับความรุนแรงไว้ที่ Medium ถึง High ไม่มีระดับ Critical
รายละเอียดข่าว
เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 4 กรกฎาคม พ.ศ. 2569 ว่า บริษัท runZero เปิดเผยช่องโหว่เจ็ดรายการในไลบรารี FatFs โดยช่องโหว่ที่เด่นที่สุดคือ CVE-2026-6682 (CVSS 7.6) ซึ่งเป็น integer overflow ในโค้ดที่ทำการ mount วอลุ่ม FAT32 การคำนวณที่ผิดพลาดสามารถสร้างขนาดไฟล์ปลอมที่โค้ดในภายหลังปฏิบัติต่อมันเสมือนเป็นความยาวการอ่านจริง ซึ่งบนฮาร์ดแวร์จริงอาจกลายเป็น memory corruption และการรันโค้ดได้ และที่สำคัญคือช่องโหว่นี้เข้าถึงได้ผ่านการอัปเดตเฟิร์มแวร์บางประเภทด้วย ไม่ใช่แค่สื่อเก็บข้อมูลทางกายภาพเท่านั้น
ส่วนที่ยากที่สุดของปัญหานี้คือ FatFs ได้รับการดูแลโดยนักพัฒนาเพียงคนเดียวในมุมเล็กๆ ของอินเทอร์เน็ต runZero ระบุว่าได้พยายามติดต่อผู้ดูแลซ้ำหลายครั้งและดึงศูนย์ประสานงาน JPCERT/CC ของญี่ปุ่นเข้ามาช่วย แต่ก็ไม่ได้รับการตอบกลับ ตามคำบอกของ runZero ไม่มีการแก้ไข upstream สำหรับช่องโหว่ memory corruption ไม่มี security mailing list และไม่มีช่องทางให้ผลิตภัณฑ์จำนวนมากที่ฝัง FatFs รับรู้ว่าตนได้รับผลกระทบ การอัปเดตช่วยได้เฉพาะกรณี GPT hang เพราะเวอร์ชันปัจจุบันบล็อกไว้แล้ว แต่ที่เหลือตกเป็นภาระของผู้จำหน่ายปลายทางที่ต้องแพตช์เอง
runZero ระบุชื่อแพลตฟอร์มที่ได้รับผลกระทบ ได้แก่ Espressif ESP-IDF, STMicroelectronics STM32Cube, Zephyr, MicroPython, ArduPilot, RT-Thread, Mbed, Samsung TizenRT และตัวอัปเดต SWUpdate ซึ่งผลักปัญหาลงสู่ IoT ผู้บริโภค อุปกรณ์อุตสาหกรรม โดรน และกระเป๋าเงินคริปโต ณ วันที่ runZero เปิดเผยเมื่อ 1 กรกฎาคม ยังไม่มีรายงานการโจมตีที่ใช้ช่องโหว่เหล่านี้ แต่วัสดุสำหรับการโจมตีเป็นสาธารณะแล้ว เพราะ runZero ได้เผยแพร่อิมเมจดิสก์ proof-of-concept ชุดทดสอบ และตัวอย่าง exploit ที่ใช้ QEMU ในคลังโค้ดประกอบ
รายละเอียดช่องโหว่
ช่องโหว่ทั้งเจ็ดรายการเรียงตามความรุนแรงจากมากไปน้อยตามการจัดอันดับของ runZero มีดังนี้:
| CVE | CVSS | รายละเอียด |
|---|---|---|
| CVE-2026-6682 | 7.6 (High) | integer overflow ตอน mount FAT32 นำไปสู่ memory corruption และอาจรันโค้ด เข้าถึงได้ผ่านการอัปเดตเฟิร์มแวร์บางประเภท |
| CVE-2026-6687 | 7.6 (High) | ฟิลด์ volume-label ของ exFAT ล้น buffer เล็ก เปิดจุดยืน memory corruption ให้ผู้โจมตี |
| CVE-2026-6688 | 7.6 (High) | ชื่อไฟล์ยาวล้นโค้ด wrapper ที่หลายโปรเจกต์ครอบ FatFs (เช่น strcpy ของ fno.fname ลง buffer คงที่) แก้ไขใน FatFs อย่างเดียวได้ยาก |
| CVE-2026-6685 | 6.1 (Medium) | การคำนวณ wrap ในการจัดการ cache บนวอลุ่มที่กระจัดกระจาย ทำให้ข้อมูลเสียหายเงียบๆ |
| CVE-2026-6683 | 4.6 (Medium) | หารด้วยศูนย์ใน exFAT ทำให้อุปกรณ์ล่ม หากอยู่ใน flow การอัปเดตอาจทำให้ฮาร์ดแวร์ brick เข้าถึงได้ผ่านการอัปเดตเฟิร์มแวร์บางประเภท |
| CVE-2026-6686 | 4.6 (Medium) | ไฟล์ที่ขยายเกินจุดสิ้นสุดอาจรั่วข้อมูลเหลือค้างจากไฟล์ที่ถูกลบก่อนหน้า |
| CVE-2026-6684 | 4.6 (Medium) | ตาราง GPT partition ที่ผิดรูปทำให้อุปกรณ์ค้างตอน mount เป็นตัวเดียวที่แก้ไข upstream แล้วใน FatFs R0.16 |
จุดที่น่ากังวลคือ runZero เคยตรวจสอบ FatFs ด้วยมือในปี พ.ศ. 2560 และพบว่าแทบไม่มีอะไรน่ารายงาน แต่เมื่อกลับมาตรวจใหม่ในเดือนมีนาคม พ.ศ. 2569 ทีมงานใช้ชุดเครื่องมือสำเร็จรูปคือ Visual Studio Code, GitHub Copilot ในโหมด “auto” และพรอมป์ธรรมดาไม่กี่ตัว โดย LLM สร้าง fuzzer ที่ป้อนข้อมูลผิดรูปเข้าโค้ดจนเกิดข้อผิดพลาด ซึ่งเผยบั๊กที่การตรวจด้วยมือพลาดไปและช่วยยืนยันว่าช่องโหว่เหล่านั้นใช้โจมตีได้จริง ประเด็นของ runZero ตรงไปตรงมาคือ หากไปป์ไลน์ AI สำเร็จรูปสามารถพบสิ่งเหล่านี้ได้ ใครก็ทำได้เช่นกัน การเก็บงำช่องโหว่ไว้เงียบๆ จึงไม่ได้ปกป้องใคร
ผลกระทบต่อไทย
ไทยมีการใช้อุปกรณ์ IoT และอุปกรณ์ฝังตัวจำนวนมากที่อาจฝัง FatFs อยู่ ทั้งกล้องวงจรปิดตามอาคารและถนน โดรนเชิงพาณิชย์และเกษตร ตัวควบคุมในโรงงานอุตสาหกรรม และฮาร์ดแวร์กระเป๋าเงินคริปโตที่ผู้ใช้ไทยนิยม อุปกรณ์เหล่านี้ส่วนใหญ่ขาดการป้องกันหน่วยความจำ ทำให้การเสียบสื่อเก็บข้อมูลที่ถูกดัดแปลงเพียงชั่วขณะอาจนำไปสู่การยึดครองอุปกรณ์ได้ ที่น่ากังวลเป็นพิเศษคือช่องโหว่บางตัวเข้าถึงได้ผ่านช่องทางอัปเดตเฟิร์มแวร์ด้วย ไม่จำเป็นต้องเข้าถึงทางกายภาพเสมอไป และเนื่องจากไม่มีแพตช์ upstream สำหรับช่องโหว่ memory corruption องค์กรไทยที่ผลิตหรือใช้อุปกรณ์เหล่านี้จึงต้องตรวจสอบเองว่ามีการใช้ FatFs หรือไม่ และเฝ้าระวังการอัปเดตจากผู้จำหน่ายแพลตฟอร์มที่เกี่ยวข้อง
คำแนะนำ
สำหรับผู้ที่พัฒนาเฟิร์มแวร์ที่แตะต้องสื่อ FAT หรือ exFAT ควรค้นหาสำเนา FatFs ในผลิตภัณฑ์ของตน ตรวจสอบโค้ด wrapper ที่ครอบมันอยู่ พิจารณาอย่างละเอียดว่าจัดการชื่อไฟล์และขนาดไฟล์อย่างไร และวางแผนติดตั้งแพตช์ สำหรับผู้ที่ใช้งานอุปกรณ์ที่ได้รับผลกระทบ ควรปฏิบัติต่อพอร์ตทางกายภาพและช่องทางอัปเดตเสมือนเป็นพื้นผิวการโจมตี จำกัดว่าใครสามารถเสียบสื่อเก็บข้อมูลได้ และเฝ้าติดตามการอัปเดตเฟิร์มแวร์จากผู้จำหน่าย ควรจับตาสองสิ่งคือ ผู้ดูแล FatFs จะกลับมาพร้อมแพตช์หรือไม่ และผู้จำหน่ายแพลตฟอร์มใหญ่ที่ฝังมันจะตอบสนองอย่างไร จนกว่าจะมีการแก้ไข ควรสันนิษฐานว่าอุปกรณ์ที่วางจำหน่ายจำนวนมากยังอ่านสื่อเก็บข้อมูลที่ไม่น่าเชื่อถือด้วยโค้ดที่ยังไม่มีการแก้ไขรองรับ
