PHP2Shell: ช่องโหว่ระดับวิกฤตใน PHP

PHP2Shell: ช่องโหว่ระดับวิกฤตใน PHP และสิ่งที่ KNP ทำเพื่อปกป้องระบบของลูกค้า
เมื่อวันที่ 21 ตุลาคม 2569 ที่ผ่านมา ทางโครงการ PHP ได้ประกาศแพตช์แก้ไขช่องโหว่ระดับวิกฤต 2 รายการ คือ CVE-2026-109618 และ CVE-2026-109619 ซึ่งในวงการความปลอดภัยเรียกรวมกันว่า “PHP2Shell” ถือเป็นข่าวที่สะเทือนวงการคนทำเว็บพอสมควร เพราะ PHP เป็นภาษาที่อยู่เบื้องหลังเว็บไซต์และระบบงานจำนวนมหาศาลทั่วโลก ตั้งแต่เว็บไซต์บริษัท ร้านค้าออนไลน์ ไปจนถึงระบบหลังบ้านขององค์กร
ช่องโหว่นี้อันตรายแค่ไหน
ทั้งสองช่องโหว่เปิดทางให้ผู้ไม่หวังดีสามารถสั่งรันโค้ดบนเซิร์ฟเวอร์ได้จากระยะไกล โดยไม่ต้องล็อกอินเข้าระบบเลย พูดง่ายๆ คือ หากเซิร์ฟเวอร์ยังไม่ได้อัปเดต ผู้โจมตีอาจเข้าไปควบคุมเครื่องได้ด้วยการส่งคำขอ (request) เพียงครั้งเดียว ซึ่งรายงานระบุว่ามีโค้ดโจมตีที่ใช้งานได้จริงแล้ว
ในเชิงเทคนิค ช่องโหว่แรกเกิดเมื่อ PHP ใช้หน่วยความจำจนหมดระหว่างประมวลผลคำขอ ทำให้ข้อมูลบางส่วนค้างอยู่ในสภาพที่ไม่สมบูรณ์ แต่ระบบกลับนำไปใช้ต่อเหมือนเป็นข้อมูลปกติ ส่วนช่องโหว่ที่สองเกิดจากข้อมูลภายในของคำขอก่อนหน้ายังหลงเหลืออยู่หลังถูกคืนหน่วยความจำไปแล้ว และคำขอถัดไปอาจหยิบข้อมูลที่ค้างอยู่นั้นมาใช้
ใครได้รับผลกระทบบ้าง
ทุกระบบที่ใช้ PHP ให้บริการหน้าเว็บมีความเสี่ยง ไม่ว่าจะทำงานผ่าน PHP-FPM, Apache (mod_php), php-cgi, FrankenPHP หรือ LiteSpeed ระบบของ KNP ก็ใช้ PHP เป็นหลักเช่นกัน จึงอยู่ในกลุ่มที่ต้องอัปเดตโดยเร็ว
เวอร์ชันที่แก้ไขแล้วได้แก่ PHP 8.5.12, 8.4.27, 8.3.36 และ 8.2.35 ส่วนระบบที่ยังใช้ PHP รุ่นเก่า (8.1 ลงไป) ซึ่งหมดระยะการสนับสนุนแล้ว ทางทีม PHP ได้ออกชุดแก้ไขสำหรับนำไปปรับใช้เอง แต่ต้องอาศัยผู้ดูแลระบบที่มีความเชี่ยวชาญในการติดตั้ง
สิ่งที่ KNP ดำเนินการ
ทันทีที่ได้รับข่าว เราเริ่มตรวจสอบเซิร์ฟเวอร์ทุกเครื่องที่ดูแลอยู่ ไล่ดูเวอร์ชัน PHP ของแต่ละระบบ แล้วทยอยอัปเดตเป็นเวอร์ชันที่ปิดช่องโหว่แล้ว พร้อมทดสอบว่าระบบของลูกค้ายังทำงานได้ตามปกติหลังอัปเดต ทั้งหมดดำเนินการเสร็จเรียบร้อยตั้งแต่คืนวันที่ 21 ถึงเช้าวันที่ 22 ตุลาคม เพื่อให้กระทบการใช้งานของลูกค้าน้อยที่สุด
นอกจากนี้ ระบบของลูกค้าทุกรายมีการสำรองข้อมูลอัตโนมัติทุกวันอยู่แล้ว ซึ่งเป็นด่านป้องกันสำคัญในกรณีที่เกิดเหตุไม่คาดฝัน เพราะต่อให้ระบบถูกโจมตี หากมีข้อมูลสำรองที่ใช้งานได้จริง ก็สามารถกู้ระบบกลับมาได้
สิ่งที่เจ้าของธุรกิจควรทำตอนนี้
หากคุณมีเว็บไซต์หรือระบบที่ใช้ PHP และดูแลโดยผู้ให้บริการรายอื่น แนะนำให้สอบถามผู้ดูแลระบบของคุณ 3 ข้อนี้:
- ระบบของเราใช้ PHP เวอร์ชันอะไร และได้อัปเดตปิดช่องโหว่ PHP2Shell แล้วหรือยัง
- ถ้ายังใช้ PHP รุ่นเก่าที่หมดการสนับสนุน มีแผนรับมืออย่างไร
- มีการสำรองข้อมูลหรือไม่ และเคยทดสอบกู้คืนข้อมูลจริงหรือเปล่า
ข้อสุดท้ายสำคัญที่สุด เพราะการมีข้อมูลสำรองที่ไม่เคยทดสอบกู้คืน ยังไม่ถือว่าปลอดภัยอย่างแท้จริง
ความปลอดภัยไม่ใช่งานทำครั้งเดียวจบ
เหตุการณ์ครั้งนี้เป็นตัวอย่างที่ดีว่าระบบที่ “ใช้งานได้” กับระบบที่ “ปลอดภัย” ไม่ใช่เรื่องเดียวกัน ช่องโหว่ใหม่ๆ เกิดขึ้นได้ตลอดเวลา สิ่งที่ทำให้ธุรกิจปลอดภัยคือการมีคนคอยติดตามข่าว อัปเดตระบบอย่างทันท่วงที และมีแผนสำรองข้อมูลที่กู้คืนได้จริง
หากระบบของคุณยังไม่มีผู้ดูแล หรือไม่แน่ใจว่าปลอดภัยจากช่องโหว่นี้หรือไม่ ติดต่อปรึกษาเราได้ครับ