ด่วน! ประกาศเตือนความปลอดภัย PHP: พบช่องโหว่ร้ายแรงระดับวิกฤต (RCE) แนะนำให้อัปเดตทันที | DATATAN.NET

ด่วน! ประกาศเตือนความปลอดภัย PHP: พบช่องโหว่ร้ายแรงระดับวิกฤต (RCE) แนะนำให้อัปเดตทันที

Urgent: PHP Security Advisory Warns of Critical Remote Code Execution (RCE) Vulnerabilities — Update Immediately

ทีมพัฒนา PHP ได้ออกประกาศเตือนความปลอดภัยระดับวิกฤต (Security Advisory) เมื่อวันที่ 21 ตุลาคม 2026 พร้อมปล่อยแพตช์อัปเดตเวอร์ชันใหม่ ได้แก่ PHP 8.5.12, 8.4.27, 8.3.36 และ 8.2.35 เพื่อแก้ไขช่องโหว่ร้ายแรง 2 รายการที่เปิดช่องให้ผู้โจมตีจากระยะไกลสามารถรันโค้ดอันตรายได้โดยไม่ต้องผ่านการยืนยันตัวตน (Unauthenticated Remote Code Execution: RCE)

ระบบใดบ้างที่ได้รับผลกระทบ?

เซิร์ฟเวอร์ที่รัน PHP เพื่อให้บริการ Web Requests ทั้งหมดตกอยู่ในความเสี่ยง ไม่ว่าจะทำงานผ่าน:

  • PHP-FPM
  • Apache คู่กับ mod_php (มีความเสี่ยงสูงสุด เนื่องจากพบวิธีโจมตีก่อนที่โค้ดของแอปพลิเคชันจะเริ่มทำงาน)
  • php-cgi
  • FrankenPHP
  • LiteSpeed

รายละเอียดช่องโหว่ระดับวิกฤต

รหัสช่องโหว่

ประเภท

รายละเอียดทางเทคนิค

CVE-2026-109618


(GHSA-w8hw-w9fx-j79w)

RCE via OOM corruption

เกิดจากกลไกการจัดการเมื่อหน่วยความจำหมด (Out-of-Memory: OOM) ไปขัดจังหวะขณะที่ข้อมูลภายในของรีเควสต์ยังตั้งค่าไม่สมบูรณ์ (Partially initialized) เมื่อเข้าสู่ขั้นตอนการล้างข้อมูล (Request cleanup) ระบบจะมองข้อมูลที่ไม่ถูกต้องนั้นว่าถูกต้อง จนนำไปสู่ช่องโหว่ Memory Corruption

CVE-2026-109619


(GHSA-6wmf-4rv5-p3rp)

RCE via stale global state

เกิดจากสถานะภายในของรีเควสต์ (Request-owned internal state) ยังคงค้างอยู่แม้หน่วยความจำเบื้องหลังจะถูกคืน (Free) ไปแล้ว เมื่อเวิร์กเกอร์ตัวเดิมรับรีเควสต์ใหม่ อาจนำสถานะที่ค้างอยู่นี้ไปประมวลผลก่อนที่จะถูกรีเซ็ตค่าอย่างถูกต้อง

แนวทางการแก้ไข (แนะนำให้ทำทันที)

ทางเลือกที่ปลอดภัยที่สุดคือการอัปเกรดเวอร์ชัน PHP ไปยังเวอร์ชันที่ได้รับการแพตช์แล้ว:

  1. อัปเดตไปยังเวอร์ชันปลอดภัย:
  • PHP 8.5 PHP 8.5.12
  • PHP 8.4 PHP 8.4.27
  • PHP 8.3 PHP 8.3.36
  • PHP 8.2 PHP 8.2.35 (หมายเหตุ: PHP 8.2 จะสิ้นสุดระยะซัพพอร์ต [EOL] ในวันที่ 31 ธันวาคม 2026)
  1. ผู้ใช้ Linux Distribution / LTS Vendors:
  • ผู้ให้บริการระบบปฏิบัติการหลักได้รับข้อมูลแพตช์ล่วงหน้าแล้ว ให้ตรวจสอบและอัปเดตผ่าน Package Manager (เช่น apt, dnf, yum) ของแต่ละค่าย
  • สำหรับผู้ที่ใช้คลังแพ็กเกจอาสาสมัคร เช่น Remi repo แนะนำให้คอมไพล์จาก Source code หรือเปลี่ยนไปใช้แพ็กเกจทางการของระบบ เนื่องจากคลังอาจปล่อยอัปเดตล่าช้า
  1. PHP 8.1 และเวอร์ชันเก่ากว่า:
  • สิ้นสุดการซัพพอร์ตจากโครงการหลักแล้ว แต่เนื่องจากความรุนแรงของช่องโหว่ ทีมความปลอดภัยได้เตรียม source-backport ขั้นต่ำสำหรับ PHP 7.4, 8.0 และ 8.1 ไว้เพื่อช่วยเหลือผู้ที่ต้องบิลด์จากซอร์สโค้ด

มาตรการบรรเทาความเสียหายชั่วคราว (หากยังไม่สามารถอัปเดตได้ทันที)

หมายเหตุ: มาตรการเหล่านี้เป็นเพียงการลดพื้นที่การถูกโจมตี (Attack Surface) ไม่สามารถทดแทนการติดตั้งแพตช์ได้อย่างสมบูรณ์

สำหรับช่องโหว่ CVE-2026-109618 (OOM Corruption)

  • กำหนดค่า memory_limit = -1 ในระดับที่แอปพลิเคชันไม่สามารถเขียนทับได้ (เช่น ผ่าน php_admin_value ใน FPM pool หรือ Apache config) เพื่อลดโอกาสเกิด OOM ของ PHP
  • ลดค่า post_max_size ลง:
  • หากแอปพลิเคชันไม่จำเป็นต้องอัปโหลดไฟล์ ให้ตั้งเป็น 8M
  • หากจำเป็นต้องอัปโหลดไฟล์ ให้ตั้งเป็น 32M และกำหนด upload_max_filesize ให้ต่ำกว่า post_max_size
  • ตั้งค่าจำกัดขนาดรีเควสต์, จำนวนฟิลด์อินพุต (Input fields), และ Header depth ที่ระดับ Web Server หรือ Reverse Proxy (เช่น Nginx, Cloudflare)
  • กำหนดขอบเขตการใช้งานทรัพยากรผ่าน Container หรือ cgroups ที่มีนโยบายตัดเฉพาะ Worker process ที่มีปัญหา

สำหรับช่องโหว่ CVE-2026-109619 (Stale Global State)

  • ปิดฟีเจอร์อัปโหลดโปรเกรส โดยตั้งค่า session.upload_progress.enabled = 0 ใน php.ini หรือ FPM configuration (ห้ามใช้ ini_set() หรือ .user.ini) แล้วสั่ง Restart Worker ทั้งหมด
  • สำหรับผู้ใช้ PHP 8.5 ให้ตั้งค่า fatal_error_backtraces = 0 และ Restart Worker
  • ลบการตั้งค่า Deprecated หรือค่าที่ไม่ถูกต้องที่ทำงานในระดับ Per-request ออก เพื่อป้องกันการยิง Warning/Diagnostics ออกมาก่อนการเตรียมระบบสมบูรณ์
Thai