สรุปสั้น
นักวิจัยความปลอดภัยแสดงให้เห็นว่าไฟล์สเปรดชีตที่สร้างขึ้นอย่างจงใจสามารถทำให้ LibreOffice และ Apache OpenOffice รันโค้ดของผู้โจมตีได้ทันทีที่เปิดไฟล์ โดยไม่มีหน้าต่างเตือนแบบที่ทั้งสองโปรแกรมแสดงก่อนรันแมโคร การโจมตีอาศัยฟีเจอร์ปกติหลายตัวที่ทำงานตามที่ออกแบบไว้ แต่เมื่อร้อยต่อกันแล้วกลับข้ามขั้นตอนที่ต้องขอให้ผู้ใช้ไว้วางใจเอกสาร เงื่อนไขสำคัญคือโปรแกรมต้องเปิดใช้งาน Java อยู่ และจนถึงตอนนี้ยังเป็นเพียง proof of concept ไม่มีรายงานการใช้โจมตีจริง
LibreOffice แก้ช่องโหว่นี้แล้วในชื่อ CVE-2026-63277 ผ่านอัปเดตที่ออกเมื่อวันที่ 5 ตุลาคม 2569 และแนะนำให้ผู้ใช้อัปเดตเป็นเวอร์ชัน 26.2.5 หรือ 26.8.0 ส่วน Apache OpenOffice ซึ่งติดตามช่องโหว่ที่ตรงกันในชื่อ CVE-2026-59265 ยังไม่มีแพตช์ ทุกเวอร์ชันจนถึง 4.1.16 ที่เป็นรุ่นปัจจุบันได้รับผลกระทบ และโครงการระบุว่าการแก้ไขจะมากับเวอร์ชัน 4.1.17 ที่ยังอยู่ระหว่างทดสอบ ระหว่างนี้ผู้ใช้ OpenOffice ป้องกันได้ด้วยการปิด Java ในการตั้งค่า หรือไม่เปิดสเปรดชีตที่ไม่น่าไว้ใจ โดยทีม V12 เผยแพร่ PoC สำหรับทั้งสองโปรแกรมแล้ว
รายละเอียดข่าว
เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 6 ตุลาคม 2569 ว่าช่องโหว่ใน LibreOffice ถูกรายงานแยกกันโดยสองทีม คือนาย Rick de Jager จากทีมความปลอดภัย V12 และนาย Thomas Rinsma กับนาย Edoardo Geraci จาก Codean Labs ส่วน Apache ให้เครดิต Codean Labs สำหรับช่องโหว่ที่ตรงกันใน OpenOffice ผู้เขียนโค้ดแก้ไขฝั่ง LibreOffice คือนาย Caolán McNamara จากบริษัท Collabora Productivity รายละเอียดช่องโหว่ถูกเผยแพร่ในรายชื่อส่งอีเมล oss-security เมื่อวันที่ 2 ตุลาคม 2569
ใน PoC ไดรเวอร์ที่ถูกโหลดเพียงเปิดโปรแกรมเครื่องคิดเลขเพื่อพิสูจน์แนวคิด แต่เส้นทางเดียวกันสามารถรันโค้ด Java ใดก็ได้ที่ผู้โจมตีเลือก นักวิจัยทดสอบบนทั้ง Windows และ Linux และระบุว่าการโจมตีไม่ผูกกับระบบปฏิบัติการใดระบบหนึ่ง ในการสาธิต ไฟล์อันตรายวางไว้บนเครื่องเดียวกันเพื่อความสะดวก แต่การโจมตีจริงจะวางไฟล์ฐานข้อมูลและโค้ดไว้บนเซิร์ฟเวอร์ที่ผู้โจมตีควบคุม
สิ่งที่ทำให้ช่องโหว่นี้น่ากังวลคือมันข้ามแนวป้องกันที่ผู้ใช้และองค์กรคุ้นเคย หลายองค์กรตั้งค่าบล็อกแมโครและอบรมพนักงานว่า “อย่ากดเปิดใช้งานแมโคร” แต่ในกรณีนี้ผู้ใช้ไม่ต้องกดอะไรเลยนอกจากเปิดไฟล์ ทั้งนี้ The Hacker News ได้ติดต่อ The Document Foundation ผู้พัฒนา LibreOffice และโครงการ Apache OpenOffice เพื่อขอความเห็นแล้ว

วิธีการโจมตี
สเปรดชีต Calc ของ LibreOffice และ Apache OpenOffice สามารถมี “database range” ซึ่งเป็นช่วงเซลล์ที่ดึงข้อมูลจากแหล่งภายนอกและรีเฟรชเองอัตโนมัติ แหล่งภายนอกนั้นเป็นไฟล์ฐานข้อมูลแยกในรูปแบบ ODB ได้ และตำแหน่งของไฟล์ระบุเป็นที่อยู่เว็บที่เขียนไว้ในสเปรดชีต เมื่อเปิดไฟล์ database range จะรีเฟรช และโปรแกรมจะดาวน์โหลดไฟล์ ODB จากที่อยู่นั้น
ไฟล์ ODB สามารถระบุไดรเวอร์ฐานข้อมูล Java หรือ JDBC driver พร้อมตำแหน่งของโค้ดไดรเวอร์ ซึ่งอาจเป็นไฟล์ JAR บนเซิร์ฟเวอร์ระยะไกล โปรแกรมจึงดาวน์โหลด JAR และเริ่มไดรเวอร์ภายในโปรเซสของตัวเอง ซึ่งก็คือโค้ดของผู้โจมตี ห่วงโซ่ทั้งหมดจึงเป็น เปิดสเปรดชีต → database range รีเฟรช → ดาวน์โหลด ODB → ODB ชี้ไปยัง JDBC driver ระยะไกล → โหลด JAR และรันโค้ด นักวิจัยชี้ว่าแต่ละขั้นเป็นฟีเจอร์ปกติทั้งหมด ปัญหาอยู่ที่เมื่อรวมกันแล้วเข้าถึงการรันโค้ดได้โดยไม่เคยถามผู้ใช้ว่าไว้วางใจเอกสารหรือไม่ เหมือนที่โปรแกรมทำก่อนรันแมโคร
ผลกระทบ
กลุ่มที่เสี่ยงโดยตรงคือผู้ใช้ LibreOffice เวอร์ชันก่อน 26.2.5 หรือ 26.8.0 และผู้ใช้ Apache OpenOffice ทุกเวอร์ชันจนถึง 4.1.16 ที่เปิดใช้ Java ไว้ ผลลัพธ์ของการโจมตีคือการรันโค้ดด้วยสิทธิ์ของผู้ใช้ที่เปิดไฟล์ ซึ่งเพียงพอสำหรับติดตั้งมัลแวร์ ขโมยข้อมูล หรือใช้เป็นจุดตั้งต้นเข้าสู่เครือข่ายองค์กร เมื่อ PoC เผยแพร่สาธารณะแล้ว ระยะเวลาที่ผู้โจมตีจะนำไปใส่ในอีเมลฟิชชิงมักสั้น และ OpenOffice ซึ่งยังไม่มีแพตช์จะเป็นเป้าที่ง่ายที่สุด
ความเสี่ยงยังขยายไปถึงระบบที่แปลงหรือแสดงตัวอย่างเอกสารอัตโนมัติด้วย LibreOffice แบบ headless บนเซิร์ฟเวอร์ หากระบบนั้นเปิด Java และประมวลผลไฟล์จากผู้ใช้ภายนอก การอัปโหลดสเปรดชีตเพียงไฟล์เดียวอาจกลายเป็นการรันโค้ดบนเซิร์ฟเวอร์ได้ ซึ่งในรายงานต้นทางยังไม่ได้ยืนยันว่าห่วงโซ่นี้ทำงานในโหมด headless หรือไม่
คำแนะนำ
- อัปเดต LibreOffice เป็นเวอร์ชัน 26.2.5 หรือ 26.8.0 ขึ้นไปบนทุกเครื่อง รวมถึงเซิร์ฟเวอร์ที่ใช้ LibreOffice แปลงเอกสาร
- ผู้ใช้ Apache OpenOffice ให้ปิด Java ในเมนู Tools > Options > Advanced จนกว่าเวอร์ชัน 4.1.17 จะออก หรือพิจารณาย้ายไปใช้โปรแกรมที่ยังได้รับแพตช์สม่ำเสมอ
- หากองค์กรไม่ใช้ฟีเจอร์ฐานข้อมูลของ Calc/Base ให้ปิด Java ผ่านการตั้งค่าแบบรวมศูนย์ (เช่น registrymodifications หรือ GPO สำหรับ LibreOffice) เป็นค่าเริ่มต้น
- เฝ้าระวังโปรเซส soffice หรือ Java ที่ดาวน์โหลดไฟล์ .odb หรือ .jar จากอินเทอร์เน็ต และโปรเซสลูกที่ไม่คาดคิดจากโปรแกรมออฟฟิศ
- เตือนผู้ใช้ว่าสเปรดชีตจากแหล่งที่ไม่รู้จักอาจอันตรายแม้ไม่มีคำเตือนแมโคร
