📌 ภาพรวม (Overview)

พบการเปิดเผยช่องโหว่ความปลอดภัยระดับวิกฤต (Critical) ในตัวแก้รหัสหลัก (Core Engine) ของภาษา PHP รวม 2 ช่องโหว่ ภายใต้ชื่อเรียกกลุ่มช่องโหว่นี้ว่า PHP2Shell

ความน่ากลัวของช่องโหว่นี้คือ ผู้โจมตี (Attacker) สามารถส่งคำสั่งเพื่อควบคุมเครื่องเซิร์ฟเวอร์จากระยะไกล (Remote Code Execution - RCE) ผ่าน HTTP Request เพียงครั้งเดียวได้ โดยไม่ต้องมีการยืนยันตัวตน (Unauthenticated) และไม่ขึ้นอยู่กับว่าเว็บไซต์หรือแอปพลิเคชันจะเขียนโค้ดปลอดภัยดีแค่ไหน เนื่องจากช่องโหว่นี้เกิดขึ้นในระดับ Engine ของ PHP เอง

  • คะแนนความรุนแรง (CVSS v4.0): 9.2 (Critical)

  • รูปแบบการโจมตี (CWE): CWE-824 (Access of Uninitialized Pointer)

  • CVE Reference:

    1. CVE-2026-109618: RCE ผ่านสภาวะ หน่วยความจำเต็ม (Out-of-Memory)

    2. CVE-2026-109619: RCE ผ่านสภาวะ ข้อผิดพลาดร้ายแรง (Fatal Errors)

⚙️ รายละเอียดเชิงลึกทางเทคนิค (Technical Analysis)

ช่องโหว่ทั้งสองมีสาเหตุหลัก (Root Cause) ร่วมกันจากกลไกการจัดการความผิดพลาดของ PHP เมื่อเกิดสภาวะ Fatal Condition เช่น:

  • การใช้ RAM เกินขีดจำกัดที่ตั้งไว้ใน memory_limit

  • การประมวลผลนานเกิน max_execution_time

  • การที่ Client ตัดการเชื่อมต่อกลางคัน (Lost Connection)

เมื่อเกิดเหตุการณ์เหล่านี้ PHP จะยกเลิกการทำงานกลางคันทันทีโดยใช้ฟังก์ชัน longjmp() ซึ่งข้ามกระบวนการล้างข้อมูล (Cleanup / Destructor) แบบปกติ ส่งผลให้โครงสร้างข้อมูล (Data Structure) ใน C อยู่ในสภาวะที่ไม่สมบูรณ์ (Inconsistent State) แต่ PHP กลับพยายามทำความสะอาดกระบวนการตามปกติหลังจากนั้น

  1. CVE-2026-109618 (Out-of-Memory Context):

    เมื่อเมมโมรี่เต็มขณะกำลังจองพื้นที่ (Allocation) โครงสร้างข้อมูลจะชี้ไปยังหน่วยความจำ Heap เก่าที่ไม่ได้ถูก Initialize (Stale Heap Data) เมื่อสคริปต์ Cleanup อ่านค่านี้จะทำให้ผู้โจมตีแทรกแซงการทำงานได้

  2. CVE-2026-109619 (Fatal Error Context):

    เมื่อเกิด Fatal Error ตัวแปร Global ของโมดูลจะยังคงชี้ไปยัง Heap Memory ของ Request ก่อนหน้าที่ถูกคืนค่า (Freed) ไปแล้ว เมื่อมี Request ถัดไปเข้ามาใน Worker Process เดียวกัน จะเกิดการอ่าน/เขียนข้อมูลบน Memory ที่ถูกปลดปล่อยไปแล้ว (Use-After-Free Behavior)

การพิสูจน์แนวคิด (PoC): ทาง CrowdStrike ทดสอบยืนยันแล้วว่า เพียงแค่ส่ง HTTP POST Request ที่ออกแบบมาเป็นพิเศษไปยัง Web Server (เช่น Apache mod_php) ผู้โจมตีก็สามารถสั่งให้เซิร์ฟเวอร์เปิด Shell Process และรันคำสั่ง Arbitrary Command ได้ทันที

🛡️ ผลกระทบต่อลูกค้า ServerToday

เนื่องจากช่องโหว่นี้เกิดขึ้นในขั้นตอนที่ PHP กำลังอ่าน Request ข้อมูล (Request Parsing) ก่อน ที่ตัวขยาย (Extensions) จะทำงาน และ ก่อน ที่โค้ดของเว็บไซต์ (เช่น WordPress, Laravel หรือเว็บที่เขียนเอง) จะเริ่มถูกคอมไพล์ด้วยซ้ำ

นั่นหมายความว่า:

  • ความเสี่ยงสูงมาก: ต่อให้เว็บไซต์ของคุณแพตช์ระบบความปลอดภัยของซอฟต์แวร์ประยุกต์ครบถ้วน แต่หากตัว PHP Engine ยังไม่ได้ลงแพตช์ ช่องโหว่นี้ก็ยังคงถูกโจมตีได้

  • ผลกระทบ: เครื่อง Web Server อาจถูกฝัง Backdoor, โดนขโมยข้อมูล หรือกลายเป็นส่วนหนึ่งของ Botnet

💡 แนวทางการป้องกันและแก้ปัญหา (Mitigation & Action Plan)

เพื่อป้องกันระบบของคุณบน ServerToday ให้ปลอดภัยสูงสุด แนะนำให้ดำเนินการดังนี้:

  1. อัปเดต PHP Core ทันที (Immediate Patching):

    ตรวจสอบและอัปเดต PHP บนเซิร์ฟเวอร์ของคุณให้เป็นเวอร์ชันล่าสุดที่มีการอัปเดตแพตช์ความปลอดภัยแก้ปัญหา PHP2Shell แล้ว ผ่านแพ็กเกจการอัปเดตประจำระบบ OS หรือพาเนลผู้ดูแลระบบ (DirectAdmin / cPanel / Plesk)

  2. เปิดใช้งาน WAF และ Endpoint Detection (EDR):

    • ใช้บริการ Web Application Firewall (WAF) เพื่อกรองและตรวจจับ Malicious Payload ใน HTTP POST Request

    • สำหรับเซิร์ฟเวอร์ที่ติดตั้ง CrowdStrike Falcon® ตัวระบบจะมีกฎการตรวจจับ (Out-of-the-box IOAs) สำหรับพฤติกรรม Post-Exploitation (เช่น การสร้าง Shell Process ที่ผิดปกติจาก Web Server) อยู่แล้ว

  3. มอนิเตอร์ Log ของ Web Server:

    คอยเฝ้าระวัง Log ที่มีการแจ้งเตือน memory_limit ถี่ผิดปกติ หรือพฤติกรรม Crash ของ Worker Process (เช่น Apache/Nginx Worker Segfaults)


🔗 แหล่งอ้างอิง (References)


Recommend Articles

blog-1
[Security Alert] แจ้งเตือนช่องโหว่ระดับ Critical "PHP2Shell" เสี่ยงถูกสั่งรันโค้ดระยะไกล (RCE) บน Web Server
แจ้งเตือนผู้ดูแลระบบ IT เกี่ยวกับช่องโหว่ PHP2Shell (CVE-2026-109618, CVE-2026-109619) ใน PHP Core Engine พร้อมผลกระทบต่อระบบ และแนวทางรับมือป้องกันจาก CrowdStrike
Oct 22, 2026 | 5 Min Read
blog-1
คู่มือเปิดใช้งาน Two‑Factor Authentication (Force 2FA)
ระบบอีเมลได้เปิดใช้งาน 2FA (Two‑Factor Authentication) เพื่อเพิ่มความปลอดภัยในการเข้าสู่ระบบ ผู้ใช้งานจำเป็นต้องตั้งค่าในการเข้าใช้งานครั้งแรก
Jan 24, 2026 | 5 Min Read