PHP ปล่อยอัปเดตฉุกเฉินแก้ช่องโหว่ Critical 2 รายการในตัว PHP runtime ที่ถูกเรียกรวมกันว่า PHP2Shell ซึ่งเปิดโอกาสให้ผู้โจมตีที่ไม่มีบัญชีผู้ใช้งานสามารถรันโค้ดบนเว็บเซิร์ฟเวอร์ได้ ขณะที่ watchTowr และ Cloudflare เริ่มพบความพยายามโจมตีแล้ว

ช่องโหว่ทั้งสองรายการได้แก่ CVE-2026-109618 และ CVE-2026-109619 มีคะแนน CVSS v4.0 ที่ 9.2 เท่ากัน ค้นพบโดย Wiz Research, Calif และทีม Codex Security ของ OpenAI ส่งผลกระทบต่อ PHP เกือบทุกเวอร์ชันย้อนไปถึง PHP 5.4 โดยแพตช์อยู่ใน PHP 8.5.12, 8.4.27, 8.3.36 และ 8.2.35 จุดที่ทำให้ช่องโหว่ทั้งสองอันตรายคือปัญหาอยู่ใน engine ของ PHP เอง ไม่ใช่โค้ดของแอปพลิเคชัน ดังนั้นแม้เว็บไซต์จะเขียนโค้ดอย่างปลอดภัย หรือมีเพียงหน้า “Hello World” ก็ยังถูกโจมตีได้ ตามประกาศด้านความปลอดภัยของ PHP ทุกการติดตั้ง PHP ที่ให้บริการเว็บล้วนมีความเสี่ยง ทั้ง PHP-FPM, Apache mod_php, php-cgi, FrankenPHP และ LiteSpeed
ระบบที่ใช้ Apache mod_php มีความเสี่ยงสูงที่สุด เนื่องจากมีการสาธิต exploit ที่ใช้ request เพียงครั้งเดียวโดยไม่ต้องยืนยันตัวตน และทำงานก่อนที่โค้ดของแอปพลิเคชันจะถูกรันด้วยซ้ำ ส่วน PHP-FPM มีพฤติกรรมต่างออกไปเพราะจะปิด worker เมื่อ request ล้มเหลวตั้งแต่ช่วงเริ่มต้น โดยสำหรับ CVE-2026-109618 ผลการวิเคราะห์ของ PHP ระบุว่า FPM มีความเสี่ยงแต่ยังไม่มีการสาธิต exploit ที่สมบูรณ์ ขณะที่ CVE-2026-109619 ถูกพิสูจน์แล้วว่าสามารถรันโค้ดได้ทั้งบน mod_php และ PHP-FPM แม้เส้นทางบน FPM จะต้องอาศัยการทำงานบางอย่างภายในแอปพลิเคชัน นอกจากนี้ผู้โจมตียังสามารถอ่านหน่วยความจำของ PHP worker process ได้โดยไม่ต้องรันโค้ดก่อน ซึ่งอาจมีรหัสผ่าน authentication token, API key และ certificate ของ request อื่นอยู่ โดยทีมวิจัยได้สาธิตการอ่านหน่วยความจำนี้กับแอปพลิเคชันที่ไม่ได้อยู่ภายใต้การควบคุมของตนมาแล้ว
ผู้ดูแลระบบควรอัปเดต PHP runtime ที่ให้บริการเว็บโดยด่วน จากนั้นรีสตาร์ต Apache, PHP-FPM และ PHP worker ที่ทำงานต่อเนื่องทั้งหมด สิ่งที่ต้องระวังคือการอัปเดตแอปพลิเคชันอย่าง WordPress หรือ Laravel ไม่ได้อัปเดต PHP runtime ไปด้วย เพราะ runtime มาจาก package ของเซิร์ฟเวอร์ ผู้ให้บริการโฮสติ้ง หรือ container image สำหรับ PHP 8.1 และเวอร์ชันเก่ากว่าซึ่งไม่ได้รับอัปเดตจาก PHP project แล้ว ทีมความปลอดภัยของ PHP ได้เผยแพร่ source backport สำหรับ PHP 7.4, 8.0 และ 8.1 ไว้ให้ ส่วน PHP 8.2 จะหมดระยะ support ในวันที่ 31 ธันวาคม 2026 ทั้งนี้ Linux distribution และ vendor ที่ให้บริการ long-term support ได้รับแพตช์ล่วงหน้า ทำให้ package ของ distribution อาจแก้ไขแล้วแม้เลขเวอร์ชันจะดูเก่า ควรตรวจสอบ changelog ว่ามีหมายเลข CVE หรือไม่แทนการดูเลขเวอร์ชัน และหลังอัปเดตควรทบทวนค่า memory_limit และ post_max_size ให้เหมาะกับแอปพลิเคชัน เนื่องจากแพตช์เพิ่ม hard memory limit ใหม่ที่จะหยุด process ทันทีเมื่อใช้หน่วยความจำถึงขีดจำกัด และ shutdown handler จะไม่ได้ทำงาน
PHP ย้ำว่าการอัปเดตเป็นวิธีแก้ไขที่สมบูรณ์เพียงวิธีเดียว มาตรการชั่วคราวช่วยลดความเสี่ยงได้เพียงบางเส้นทางการโจมตีเท่านั้น สำหรับ CVE-2026-109618 ให้ตั้งค่า memory_limit=-1 เพื่อไม่ให้แอปพลิเคชันแก้ค่าทับได้ ตั้ง post_max_size ให้ต่ำ และจำกัดขนาด request ที่ web server หรือ proxy โดยห้ามใช้ RLIMIT_AS หรือ RLIMIT_DATA แทน เพราะอาจกระตุ้นเส้นทางที่มีช่องโหว่เดียวกัน ส่วน CVE-2026-109619 ให้ตั้งค่า session.upload_progress.enabled=0 แล้วรีสตาร์ตทุก worker และบน PHP 8.5 ให้ตั้ง fatal_error_backtraces=0 เพิ่ม แต่วิธีนี้ปิดได้เฉพาะเส้นทางผ่าน session ที่ยืนยันแล้ว ไม่ครอบคลุมรูปแบบการโจมตีอื่น ด้านสถานการณ์การโจมตี watchTowr รายงานว่าพบความพยายามโจมตีช่องโหว่ทั้งสองรายการแล้ว และ Cloudflare พบว่าผู้โจมตีปรับเปลี่ยน payload เพื่อหลบเลี่ยงกฎ WAF ของ Cloudflare เอง แม้จะยังไม่มีรายงานการเจาะระบบสำเร็จที่ยืนยันได้ ทีมวิจัยแนะนำให้เฝ้าระวัง multipart request ที่ผิดปกติซึ่งตามมาด้วย error เรื่อง memory limit หรือ HTTP 500 ซ้ำๆ รวมถึง cookie PHPSESSID ที่มีขนาดใหญ่ผิดปกติ และการรีสตาร์ตของ PHP worker ที่ไม่ทราบสาเหตุ
ที่มา: https://thehackernews.com/2026/10/php-issues-emergency-patches-for-two.html
TechTalkThai ศูนย์รวมข่าว Enterprise IT ออนไลน์แห่งแรกในประเทศไทย








