PHP2Shell และช่องโหว่ร้ายแรงประจำสัปดาห์: วิธีแพตช์เซิร์ฟเวอร์ของคุณ (ตุลาคม 2026)
สัปดาห์นี้เกิดเหตุการณ์ด้านความปลอดภัยของ PHP ที่ร้ายแรงที่สุดครั้งหนึ่งในรอบหลายปี เมื่อวันที่ 21 ตุลาคม 2026 โครงการ PHP ได้ออกเวอร์ชันฉุกเฉินเพื่อแก้ไขช่องโหว่การรันโค้ดจากระยะไกล (RCE) ระดับร้ายแรง 2 รายการที่เรียกว่า PHP2Shell หลังจากรายละเอียดรั่วไหลก่อนกำหนดหนึ่งวัน และผู้โจมตีเริ่มสแกนเซิร์ฟเวอร์ภายในไม่กี่ชั่วโมง ในเวลาเดียวกัน Patch Tuesday เดือนตุลาคมของ Microsoft ที่มีจำนวนแพตช์สูงเป็นประวัติการณ์ และช่องโหว่ใหม่ในรายการ CISA KEV ก็เพิ่มงานเร่งด่วนให้ทีม IT
บทความนี้สรุปว่าเกิดอะไรขึ้น ระบบใดได้รับผลกระทบ และวิธีแพตช์หรือลดความเสี่ยงอย่างเป็นขั้นตอน เพื่อช่วยให้คุณจัดลำดับความสำคัญใน 24 ถึง 72 ชั่วโมงข้างหน้า
ประเด็นสำคัญ
- อัปเดต PHP ทันที: เวอร์ชันที่แก้ไขแล้วคือ 8.5.12, 8.4.27, 8.3.36 และ 8.2.35 ทาง PHP ระบุว่าการอัปเดตเป็นวิธีแก้ไขที่สมบูรณ์เพียงวิธีเดียว
- ความเสี่ยงสูงสุด: Apache mod_php ซึ่งการโจมตีสามารถทำงานได้ก่อนโค้ดแอปพลิเคชันของคุณจะรัน ส่วน PHP-FPM, php-cgi, FrankenPHP และ LiteSpeed ก็ได้รับผลกระทบภายใต้เงื่อนไขบางอย่าง
- มีความพยายามโจมตีจริงแล้ว: Cloudflare และ watchTowr รายงานความพยายามโจมตีจริงเมื่อวันที่ 21 ตุลาคม
- PHP รุ่นเก่า (8.1, 8.0, 7.4) ไม่มีแพตช์ทางการ: ให้ใช้บิลด์ที่แก้ไขแล้วจากดิสโทรหรือผู้ให้บริการ ใช้ซอร์สแบ็กพอร์ต หรืออัปเกรด
- สิ่งที่ต้องแพตช์ในสัปดาห์นี้ด้วย: ช่องโหว่ zero-day ของ Windows Shell CVE-2026-96951 และช่องโหว่ในรายการ KEV ของ Ivanti, Palo Alto PAN-OS, Fortinet, Cisco, BeyondTrust และ Atlassian
PHP2Shell คืออะไร?
PHP2Shell คือชื่อเรียกช่องโหว่ 2 รายการในตัว PHP runtime เอง ไม่ได้อยู่ในเฟรมเวิร์กหรือ CMS ใดโดยเฉพาะ ดังนั้น WordPress, WooCommerce, Magento, Laravel และเว็บไซต์ PHP ที่พัฒนาเองล้วนได้รับผลกระทบได้หากเซิร์ฟเวอร์ใช้บิลด์ PHP ที่มีช่องโหว่ ทั้งสองรายการได้รับคะแนน 9.2 ตาม CVSS v4.0 จาก PHP และรายงานโดยนักวิจัยจาก Wiz, Calif และ OpenAI
- CVE-2026-109618 (หน่วยความจำเสียหายจากหน่วยความจำไม่พอ): ข้อผิดพลาด out-of-memory ขัดจังหวะคำขอและทิ้งข้อมูลไว้ในสถานะที่เริ่มต้นไม่สมบูรณ์ จากนั้นโค้ดล้างข้อมูลประมวลผลสถานะที่ไม่ถูกต้องนี้ ซึ่งเปิดทางให้รันโค้ดจากระยะไกลได้
- CVE-2026-109619 (สถานะส่วนกลางค้าง / use-after-free): PHP ยังเก็บการอ้างอิงถึงข้อมูลคำขอหลังจากหน่วยความจำถูกคืนแล้ว และคำขอถัดไปบน worker เดียวกันอาจนำกลับมาใช้ นักวิจัยสาธิตการรันโค้ดผ่านฟีเจอร์ session upload progress
- การรั่วไหลของหน่วยความจำ: นักวิจัยยังแสดงให้เห็นว่าสามารถอ่านหน่วยความจำของ PHP worker ได้โดยไม่ต้องยืนยันตัวตน ซึ่งอาจเปิดเผยรหัสผ่าน โทเค็นเซสชัน และ API key
เวอร์ชัน PHP ที่ได้รับผลกระทบและเวอร์ชันที่แก้ไขแล้ว
สาขา PHP | เวอร์ชันที่แก้ไขแล้ว | หมายเหตุ |
|---|---|---|
8.5 | 8.5.12 | ตั้งค่า fatal_error_backtraces=0 เพิ่มเติมหากยังแพตช์ไม่ได้ |
8.4 | 8.4.27 | อัปเกรดทันที |
8.3 | 8.3.36 | อัปเกรดทันที |
8.2 | 8.2.35 | สาขานี้หมดอายุการสนับสนุน 31 ธันวาคม 2026 |
8.1 / 8.0 / 7.4 | ไม่มีรีลีสทางการ | ใช้บิลด์ที่แก้ไขแล้วจากดิสโทรหรือผู้ให้บริการ ใช้ซอร์สแบ็กพอร์ต หรืออัปเกรด |
ดิสโทร Linux มักแบ็กพอร์ตการแก้ไขโดยไม่เปลี่ยนหมายเลขเวอร์ชัน บน Ubuntu, Debian, Red Hat, Alpine และอื่นๆ ให้ตรวจสอบ changelog ของแพ็กเกจหรือประกาศด้านความปลอดภัยของผู้ให้บริการว่ามีรหัส CVE ทั้งสองหรือไม่ แทนที่จะดูแค่หมายเลขเวอร์ชัน
วิธีแพตช์ PHP2Shell ทีละขั้นตอน
- สำรวจ PHP runtime ทั้งหมด รวมถึงเว็บเซิร์ฟเวอร์ คอนเทนเนอร์ อิมเมจ CI และการติดตั้งสำรอง โปรดทราบว่า
php -vบนบรรทัดคำสั่งอาจไม่ใช่ไบนารีที่ให้บริการเว็บจริง ควรตรวจสอบphpinfo()หรือ FPM pool ด้วย - อัปเดตเป็นเวอร์ชันที่แก้ไขแล้ว ตัวอย่างบน Ubuntu หรือ Debian:
sudo apt update && sudo apt install --only-upgrade php8.3 php8.3-fpmบนระบบตระกูล RHEL ใช้dnf update php*สำหรับ Docker ให้บิลด์ใหม่จากแท็กอิมเมจ php ทางการล่าสุดแล้วดีพลอยใหม่ - รีสตาร์ตทุกโปรเซส PHP รีสตาร์ต PHP-FPM, Apache (สำหรับ mod_php), LiteSpeed หรือ FrankenPHP เพื่อไม่ให้มี worker เก่าที่ยังรันโค้ดที่มีช่องโหว่
- ตรวจสอบ ยืนยันว่าทั้งแพ็กเกจที่ติดตั้งและ worker ที่กำลังทำงานรายงานบิลด์ที่แก้ไขแล้ว
- ทบทวนการตั้งค่าหน่วยความจำหลังแพตช์ การแก้ไขนี้เพิ่มขีดจำกัดหน่วยความจำที่เข้มงวดขึ้น ซึ่งอาจหยุดสคริปต์ที่รันนานและ shutdown handler ได้ จึงควรทดสอบงานหนัก เช่น การนำเข้าข้อมูลและรายงาน
- เปลี่ยนข้อมูลลับหากเคยเปิดเผยสู่สาธารณะ หากเซิร์ฟเวอร์เคยรันบิลด์ที่มีช่องโหว่บนอินเทอร์เน็ต ควรพิจารณาเปลี่ยนรหัสผ่านฐานข้อมูล API key และ session secret เนื่องจากความเสี่ยงการรั่วไหลของหน่วยความจำ
วิธีบรรเทาชั่วคราวหากยังแพตช์ไม่ได้ในวันนี้
มาตรการเหล่านี้ช่วยลดความเสี่ยงแต่ ไม่ได้แก้ไขช่องโหว่อย่างสมบูรณ์ ใช้เป็นทางผ่านชั่วคราวก่อนการอัปเดตจริงเท่านั้น
- สำหรับ CVE-2026-109619: ตั้งค่า
session.upload_progress.enabled=0ใน php.ini หรือการตั้งค่า FPM pool แล้วรีสตาร์ต worker อย่าพึ่ง ini_set() หรือ .user.ini บน PHP 8.5 ให้ตั้งค่าfatal_error_backtraces=0ด้วย - สำหรับ CVE-2026-109618: ตั้งค่า
post_max_size=8M(หรือ 32M หากต้องอัปโหลด) ให้upload_max_filesizeต่ำกว่าค่านี้ จำกัดขนาดคำขอที่ Nginx, Apache หรือ WAF และบล็อกคำขอ multipart ที่แอปไม่ได้ใช้ - ขีดจำกัดหน่วยความจำ: ใช้ขีดจำกัดของคอนเทนเนอร์หรือ cgroup แทน RLIMIT_AS หรือ RLIMIT_DATA
- สำหรับ PHP-FPM: พิจารณา
pm.max_requests=1หากประสิทธิภาพรองรับได้ เพื่อให้แต่ละ worker จัดการเพียงคำขอเดียว - จำกัดการเข้าถึง: วางหน้าแอดมินและไซต์ staging ไว้หลัง VPN หรือรายการ IP ที่อนุญาต และเปิดใช้กฎ WAF หรือ CDN สำหรับ PHP2Shell
สัญญาณที่บ่งชี้ว่าเซิร์ฟเวอร์อาจตกเป็นเป้าหมาย
- คำขอ POST แบบ multipart ผิดปกติ ตามด้วยข้อผิดพลาดเกินขีดจำกัดหน่วยความจำใน log
- การตอบกลับ HTTP 500 พุ่งสูงขึ้น
- คุกกี้ PHPSESSID ที่มีขนาดใหญ่ผิดปกติ
- PHP worker ล่มหรือรีสตาร์ตโดยไม่ทราบสาเหตุ
- ไฟล์ PHP ใหม่หรือถูกแก้ไขในโฟลเดอร์อัปโหลดหรือแคช
ช่องโหว่ร้ายแรงอื่นๆ ในสัปดาห์นี้
PHP ไม่ใช่เรื่องเร่งด่วนเพียงเรื่องเดียว Patch Tuesday เดือนตุลาคม 2026 ของ Microsoft (13 ตุลาคม) แก้ไขช่องโหว่ราว 1,411 รายการ ในจำนวนนี้ 70 รายการเป็นระดับ Critical และมี zero-day 3 รายการ นอกจากนี้ CISA ยังเพิ่มช่องโหว่ที่ถูกโจมตีจริงหลายรายการเข้าสู่แคตตาล็อก Known Exploited Vulnerabilities (KEV) ระหว่างวันที่ 13 ถึง 16 ตุลาคม
CVE | ผลิตภัณฑ์ | ปัญหา | สถานะ |
|---|---|---|---|
CVE-2026-96951 | Windows Shell | ข้ามกลไก Mark of the Web | ถูกโจมตีจริง แพตช์ผ่าน Windows Update |
CVE-2026-108398 | .NET Framework | ข้ามฟีเจอร์ความปลอดภัย (WDAC) | เปิดเผยต่อสาธารณะแล้ว |
CVE-2026-104935 | Ivanti Connect Secure | ข้ามการยืนยันตัวตน | อยู่ใน CISA KEV |
CVE-2026-0322 | Palo Alto Networks PAN-OS | Code injection | อยู่ใน CISA KEV |
CVE-2025-61624 | ผลิตภัณฑ์ Fortinet | Path traversal | อยู่ใน CISA KEV |
CVE-2026-76519 | Cisco Secure Email Gateway | Path traversal | อยู่ใน CISA KEV |
CVE-2026-102764 | BeyondTrust Remote Support | ข้ามการยืนยันตัวตน | อยู่ใน CISA KEV |
CVE-2026-21589 | ผลิตภัณฑ์ Atlassian | ไฟล์และไดเรกทอรีถูกเปิดเผย | อยู่ใน CISA KEV มี PoC สาธารณะ |
สำหรับช่องโหว่ทั้งหมดนี้ ให้จัดลำดับความสำคัญกับระบบที่เชื่อมต่ออินเทอร์เน็ต เช่น VPN gateway ไฟร์วอลล์ เครื่องมือช่วยเหลือระยะไกล และ mail gateway ติดตั้งแพตช์ของผู้ผลิต ตรวจสอบเวอร์ชันที่ติดตั้ง และหากยังแพตช์ทันทีไม่ได้ ให้จำกัดอินเทอร์เฟซการจัดการไว้ในเครือข่ายที่เชื่อถือได้หรือปิดฟีเจอร์ที่ได้รับผลกระทบ
หมายเหตุสำหรับผู้ใช้ Windows 10 และ 11
การอัปเดตเดือนตุลาคม 2026 เป็นการอัปเดตความปลอดภัยครั้งสุดท้ายสำหรับ Windows 11 24H2 Home และ Pro และ Windows 10 Enterprise LTSB 2016 ควรวางแผนอัปเกรดเครื่องที่ยังใช้เวอร์ชันเหล่านี้
OneXT Digital ช่วยคุณได้อย่างไร
หลายธุรกิจดูแลเว็บไซต์ PHP หลายสิบแห่งบนโฮสติ้ง เวอร์ชัน และปลั๊กอินที่แตกต่างกัน ทำให้การแพตช์ฉุกเฉินล่าช้าและมีความเสี่ยง ทีม OneXT Digital สามารถตรวจสอบระบบ PHP, WordPress, WooCommerce และ Magento ของคุณ ติดตั้งแพตช์ PHP2Shell หรือเสริมความปลอดภัยชั่วคราว ทดสอบเว็บไซต์หลังอัปเดต และวางระบบดูแลรักษาต่อเนื่อง เพื่อให้ CVE ร้ายแรงครั้งต่อไปได้รับการจัดการภายในไม่กี่ชั่วโมงแทนที่จะเป็นหลายสัปดาห์ ติดต่อเราเพื่อรับการตรวจสอบความปลอดภัยเว็บไซต์ฟรี

