สรุปสั้น
ไฟล์ APK คือ แพ็กเกจติดตั้งแอป Android ซึ่งจริง ๆ แล้วเป็นไฟล์ ZIP ที่ Android ต้องอ่านโครงสร้างภายในตอนติดตั้ง เมื่อวันที่ 5 พฤศจิกายน 2569 Bitdefender Labs เปิดเผยช่องโหว่ชื่อ GhostMap ที่ทำให้มือถือ Android ติดอยู่ในวงจรล่มและรีบูตวนไม่รู้จบหลังติดตั้งแอปที่ประดิษฐ์ขึ้นเพียงแอปเดียว แอปนั้นไม่ต้องถูกเปิด ไม่ขอสิทธิ์ใด และไม่มีโค้ดเลย ต้นเหตุ คือ ไลบรารีสองตัวใน Android อ่านค่าวิธีบีบอัดและขนาดของไฟล์ใน ZIP ด้วยกฎต่างกัน ทำให้ Android แมปไฟล์เข้าหน่วยความจำด้วยขนาดที่ผิด เมื่อบริการหลักของระบบอ่านเกินไฟล์จริง เคอร์เนลจะฆ่าบริการนั้น แล้วบริการก็เริ่มใหม่และอ่านไฟล์เดิมซ้ำ
ผล คือ เครื่องบูตไม่เสร็จ ล่มซ้ำทุกไม่กี่วินาทีโดยไม่บอกว่าแอปไหนเป็นต้นเหตุ safe mode ใช้ไม่ได้ ทางออก คือ รีเซ็ตเครื่องซึ่งลบข้อมูล หรือลบไฟล์ผ่าน ADB ถ้าเปิด USB debugging ไว้ก่อน ช่องโหว่นี้ไม่รันโค้ด ไม่ขโมยข้อมูล และไม่ยกระดับสิทธิ์ แต่อาจถูกใช้ล็อกเครื่องเพื่อเรียกเงิน หรือป้องกันไม่ให้ผู้ใช้ถอนแอปอันตราย Bitdefender ยังไม่เห็นการใช้งานกับผู้ใช้จริง Google ยังไม่ออกแพตช์หรือ CVE ผู้ใช้ควรติดตั้งแอปจากร้านค้าที่เชื่อถือได้เท่านั้นและเลี่ยงไฟล์ APK จากแหล่งอื่น
รายละเอียดข่าว
เว็บไซต์ Cyber Security News รายงานเมื่อวันที่ 5 พฤศจิกายน 2569 ว่าการวิเคราะห์เริ่มเมื่อ 12 สิงหาคม 2569 เมื่อไฟล์ APK ที่เก็บได้จากโลกจริงทำให้ emulator ทดสอบของแล็บล่ม ไฟล์นั้นเป็น dropper มัลแวร์ธนาคารที่ไม่เคยได้รัน เพราะล้มเหลวตั้งแต่ขั้นติดตั้ง Bitdefender พบว่าต้นเหตุอยู่ใน Android เอง ไม่ใช่ในมัลแวร์ ผู้สร้างมัลแวร์ห่อไฟล์ด้วย packer ซึ่งเขียนโครงสร้างภายในของแอปใหม่เพื่อกันเครื่องมือวิศวกรรมย้อนกลับ การเขียนใหม่นั้นไปทำให้ส่วนที่ Android ใช้อ่านแอปตอนติดตั้งพังด้วย
ไทม์ไลน์การรายงานเป็นดังนี้ Bitdefender รายงาน Google เมื่อ 20 สิงหาคมและอีกครั้ง 25 สิงหาคม ครั้งแรก Google ปิดเคสว่า Won’t Fix เพราะทำซ้ำไม่ได้ หลังรายงานครั้งที่สอง Google ระบุว่าปัญหาอยู่นอกขอบเขตของอัปเดตความปลอดภัย และส่งให้ทีมพิจารณาแก้ในรุ่นอนาคต ยังไม่มีแพตช์หรือหมายเลข CVE แม้ Google เคยแก้รูปแบบที่อ่อนกว่าไปเมื่อปี 2559 ในชื่อ CVE-2016-6724 ช่วงที่ได้รับผลเริ่มตั้งแต่ Android 10 ข้อจำกัดของข้อมูล คือ Bitdefender ยังไม่พบการใช้กลไกนี้โจมตีผู้ใช้จริง และการทดสอบหลักทำบนอุปกรณ์รุ่นเดียว
รายละเอียดช่องโหว่
สองไลบรารีอ่านไฟล์ ZIP ไม่ตรงกัน — แต่ละรายการใน APK ระบุวิธีบีบอัดและขนาด ไลบรารีตัวหนึ่งของ Android ตรวจขนาดเฉพาะรายการที่ระบุว่าเก็บแบบไม่บีบอัด (stored) อีกตัวถือว่าทุกอย่างที่ไม่ได้ระบุว่าบีบอัดแบบ deflate เป็นแบบ stored รายการที่ใส่ค่าวิธีบีบอัดแปลก ๆ จึงหลุดช่องระหว่างกฎสองชุด เทคนิคทำนองนี้เคยเห็นในกลุ่ม packer ชื่อ BadPack ที่ Unit 42 ของ Palo Alto รายงานเมื่อปี 2567 ว่าพบราว 9,200 ตัวอย่างในหนึ่งปี และในมัลแวร์ Konfety แต่ครั้งนั้นแอปยังรันได้และไม่ทำให้เครื่องล่ม
แมปไฟล์ด้วยขนาดปลอมแล้วอ่านเกิน — Android แมปไฟล์เข้าหน่วยความจำตามขนาดที่ผิด ในการทดสอบหนึ่ง APK ขนาด 8,408 ไบต์ถูกแมปกินพื้นที่ราว 16 MB เมื่อโปรเซสอ่านเลยท้ายไฟล์จริง CPU จะส่งสัญญาณ SIGBUS และเคอร์เนลฆ่าโปรเซสนั้น
system_server ล่มวนไม่รู้จบ — กรณีที่ร้ายที่สุดเกิดกับ system_server ซึ่งเป็นโปรเซสที่รันบริการส่วนใหญ่ของ Android หลังติดตั้ง บริการหลักตัวหนึ่งอ่านไฟล์ resource เล็ก ๆ ในแอป ล่ม เริ่มใหม่ แล้วอ่านไฟล์เดิมซ้ำ Bitdefender ทดสอบบน Pixel 10 ที่รัน Android 17 แพตช์ 5 สิงหาคม 2569 การล่มครั้งแรกเกิดราวหนึ่งวินาทีหลังติดตั้ง การบันทึกหนึ่งครั้งเห็นการล่มซ้ำ 110 ครั้ง และใน safe mode 72 ครั้ง safe mode ช่วยไม่ได้เพราะบริการอ่านไฟล์ก่อนที่ safe mode จะมีผล
ข้อจำกัดของช่องโหว่ — GhostMap ทำได้แค่ทำให้โปรเซสล่ม ไม่รันโค้ด ไม่ขโมยข้อมูล และไม่ยกระดับสิทธิ์
ผลกระทบ
กลุ่มที่เสี่ยง คือ ผู้ใช้ Android 10 ขึ้นไปที่ติดตั้งแอปจากนอกร้านค้าทางการ (sideload) ผลลัพธ์เมื่อโดน คือ เครื่องใช้งานไม่ได้ทันที และทางกู้ที่ผู้ใช้ทั่วไปทำได้มีแค่รีเซ็ตเครื่อง ซึ่งลบข้อมูลที่ไม่ได้แบ็กอัป ผู้ใช้ที่เปิด USB debugging ไว้ก่อนอาจลบไฟล์ผ่าน ADB ระหว่างช่วงที่เครื่องล่มได้
Bitdefender ชี้ความเป็นไปได้ในการนำไปใช้ 3 แบบ แบบแรก คือ แอปอันตรายล็อกเครื่องแล้วเรียกเงิน แบบที่สอง คือ แอปทำให้ไอคอนตัวเองเสียหาย จน launcher และ Settings ล่มทุกครั้งที่ผู้ใช้พยายามถอนแอป และแบบที่สาม คือ เครื่องมือสแกนความปลอดภัยที่เปิดไฟล์จะล่มตาม ทำให้แอปไม่ถูกตรวจพบ ไฟล์อันตรายยังอาจมาภายหลังผ่านการอัปเดตแอป การที่ Google ยังไม่จัดเป็นปัญหาความปลอดภัยแปลว่าช่องโหว่นี้อาจอยู่ต่อไปอีกนาน
คำแนะนำ
- ผู้ใช้ Android — ทำทันที: ติดตั้งแอปจาก Google Play หรือร้านค้าที่เชื่อถือได้เท่านั้น และปิดการอนุญาตติดตั้งแอปจากแหล่งที่ไม่รู้จักในเบราว์เซอร์และแอปแชต
- ผู้ใช้ Android: แบ็กอัปข้อมูลสำคัญอย่างสม่ำเสมอ เพราะการรีเซ็ตเครื่องเป็นทางกู้หลักถ้าโดน
- ถ้าเครื่องรีบูตวนหลังติดตั้งแอป: ถ้าเปิด USB debugging ไว้ ให้ลองใช้ ADB ถอนแพ็กเกจหรือลบไฟล์ระหว่างช่วงที่เครื่องล่ม ถ้าไม่ได้ ต้องรีเซ็ตเครื่อง ส่วนการเปิด USB debugging ไว้ล่วงหน้ามีความเสี่ยงของมันเอง ควรพิจารณาเฉพาะเครื่องที่ควบคุมการเข้าถึงทางกายภาพได้
- องค์กรที่ดูแลมือถือด้วย MDM: บล็อกการติดตั้งแอปจากนอกร้านค้าที่อนุมัติ และเตรียมขั้นตอนรีเซ็ตและคืนค่าอุปกรณ์ที่รวดเร็ว
- ทีมวิเคราะห์มัลแวร์: เปิดไฟล์ APK ที่น่าสงสัยในสภาพแวดล้อมแยก เพราะเครื่องมือและ emulator ที่อ่านไฟล์อาจล่มตาม
