อัปเดตความปลอดภัยสำคัญของ PHP และ Node.js: WireBoard ทำอะไรแล้ว และคุณต้องทำอะไรต่อ

Patrick Wunderlin
Patrick Wunderlin
อัปเดตความปลอดภัยสำคัญของ PHP และ Node.js: WireBoard ทำอะไรแล้ว และคุณต้องทำอะไรต่อ

วันนี้ 21 ตุลาคม 2569 ทั้ง PHP และ Node.js ออกอัปเดตความปลอดภัย โดยเฉพาะ PHP ที่แก้ช่องโหว่ระดับวิกฤต 2 รายการ ซึ่งเปิดทางให้ผู้โจมตีรันโค้ดบนเว็บเซิร์ฟเวอร์ได้โดยไม่ต้องเข้าสู่ระบบ และมีรายงานการโจมตีตั้งแต่ก่อนเผยแพร่แพตช์

WireBoard อัปเดตเรียบร้อยแล้ว บริการไม่หยุดชะงัก และคุณไม่ต้องดำเนินการใด ๆ กับบัญชี WireBoard หรือสคริปต์ติดตาม

แต่ถ้าเว็บไซต์หรือแอปของคุณใช้ PHP หรือ Node.js โปรดอ่านรายละเอียดด้านล่างและอัปเดตภายในวันนี้

สรุปสั้น ๆ

เวอร์ชันที่ต้องอัปเดต

ระดับความรุนแรง

PHP

8.5.12, 8.4.27, 8.3.36 หรือ 8.2.35 (หรือแพ็กเกจที่ผู้ให้บริการออกแพตช์แล้ว)

วิกฤต (CVSS 9.2) ผู้โจมตีรันโค้ดจากระยะไกลได้โดยไม่ต้องยืนยันตัวตน

Node.js

26.12.1, 24.22.1 หรือ 22.23.4

สูง

  • ใช้ WordPress, Magento, Drupal, Laravel หรือแอปที่เขียนด้วย PHP อยู่ใช่ไหม? นั่นหมายความว่าคุณใช้ PHP และควรอัปเดตทันที

  • ใช้โฮสติ้งแบบ shared หรือ managed อยู่? ผู้ให้บริการโฮสติ้งเป็นผู้ติดตั้งแพตช์ PHP ให้ ตรวจสอบว่าดำเนินการแล้ว

  • หลังอัปเดต PHP ต้องรีสตาร์ต PHP-FPM หรือ Apache ด้วย ไม่เช่นนั้นระบบจะยังใช้เวอร์ชันเดิมอยู่

  • ใช้เวอร์ชันที่หมดระยะสนับสนุนแล้ว (PHP 8.1 หรือต่ำกว่า, Node.js 25, 23, 20 หรือต่ำกว่า)? เวอร์ชันเหล่านี้จะไม่ได้รับแพตช์อย่างเป็นทางการ ควรวางแผนย้ายไปใช้เวอร์ชันที่ยังได้รับการสนับสนุน


เกิดอะไรขึ้น

PHP: "PHP2Shell" (CVE-2026-109618 และ CVE-2026-109619)

ทีม PHP ออกแพตช์แก้ช่องโหว่ระดับวิกฤต 2 รายการ ซึ่งได้คะแนนความรุนแรง CVSS v4.0 ที่ 9.2 เท่ากัน:

  • CVE-2026-109618: ผู้โจมตีรันโค้ดจากระยะไกลได้ผ่านข้อผิดพลาดในหน่วยความจำ เมื่อ PHP ใช้หน่วยความจำจนหมดระหว่างประมวลผลคำขอ

  • CVE-2026-109619: ผู้โจมตีรันโค้ดจากระยะไกลได้ผ่านสถานะส่วนกลางที่ค้างอยู่จากการทำงานก่อนหน้า

ทั้งสองช่องโหว่โจมตีจากระยะไกลได้โดยไม่ต้องยืนยันตัวตน แม้ใช้การตั้งค่าเริ่มต้น รายละเอียดหลุดออกมาทางออนไลน์ก่อนกำหนดเผยแพร่หนึ่งวัน บริษัทด้านความปลอดภัยจึงตรวจพบทั้งการโจมตีและการสแกนหาช่องโหว่ในเว็บไซต์ที่ใช้ PHP ตั้งแต่ยังไม่มีแพตช์ หลายบริษัทตัดสินใจปิดบริการชั่วคราวเพื่อป้องกันความเสี่ยงจนกว่าจะอัปเดตได้

PHP ทุกรุ่นหลักที่ยังได้รับการสนับสนุนได้รับผลกระทบ หากเป็นเวอร์ชันก่อน 8.2.35, 8.3.36, 8.4.27 และ 8.5.12 ตามลำดับ

Node.js: อัปเดตความปลอดภัยเดือนตุลาคม 2569

Node.js ออกแพตช์สำหรับรุ่น 26.x, 24.x และ 22.x เพื่อแก้ช่องโหว่ 10 รายการ โดย 4 รายการมีความรุนแรงระดับสูง รายการสำคัญมีดังนี้:

  • CVE-2026-111497: การเขียนข้อมูลเกินขอบเขตหน่วยความจำในตัวคลายการบีบอัด Brotli ซึ่งอาจทำให้ผู้โจมตีรันโค้ดจากระยะไกลได้ แอปของคุณอาจเจอช่องโหว่นี้เพียงแค่เรียก fetch() ไปยังเซิร์ฟเวอร์ที่ส่งข้อมูลบีบอัดแบบ Brotli กลับมา

  • CVE-2026-105483 / CVE-2026-106069: การเลี่ยงการตรวจสอบชื่อโฮสต์ใน TLS ด้วยการเขียนที่อยู่ IP ในรูปแบบที่ไม่ปกติ

  • CVE-2026-105482: dns.resolve อาจค้นหาชื่อที่ไม่ตรงกับชื่อที่โค้ดของคุณตรวจสอบไว้

WireBoard ดำเนินการอะไรแล้ว

วันนี้เราอัปเดตทั้ง PHP และ Node.js บนโครงสร้างพื้นฐานทั้งหมดของ WireBoard เรียบร้อยแล้ว บริการไม่หยุดชะงัก ข้อมูลไม่ได้รับผลกระทบ และคุณยังใช้งาน WireBoard ได้เหมือนเดิม

ระบบของคุณได้รับผลกระทบหรือไม่?

คุณต้องดำเนินการหากเว็บไซต์ แอป หรือเซิร์ฟเวอร์ของคุณใช้:

  • PHP ไม่ว่าจะใช้โดยตรง หรือผ่าน CMS หรือเฟรมเวิร์ก เช่น WordPress, WooCommerce, Magento, Drupal, Joomla, Laravel หรือ Symfony

  • Node.js เช่น แอป Next.js, Nuxt, Express หรือ NestJS รวมถึงบริการฝั่ง backend หรือเซิร์ฟเวอร์สำหรับ build ที่ใช้ Node

ไม่แน่ใจ? ถามนักพัฒนาหรือผู้ให้บริการโฮสติ้งของคุณได้เลยว่า “เว็บไซต์ของเราใช้ PHP หรือ Node.js ไหม และอัปเดตความปลอดภัยที่ออกวันนี้แล้วหรือยัง?”

วิธีตรวจสอบเวอร์ชันที่ใช้

PHP

เวอร์ชันที่ต้องตรวจสอบคือเวอร์ชันที่เว็บเซิร์ฟเวอร์ใช้งาน คำสั่ง php -v ในเทอร์มินัลจะแสดงเวอร์ชัน PHP สำหรับ command line ซึ่งอาจเป็นคนละเวอร์ชันกัน

  1. สร้างไฟล์ชื่อ info.php ในโฟลเดอร์รากของเว็บไซต์ แล้วใส่โค้ด <?php phpinfo();

  2. เปิดไฟล์นี้ผ่านเบราว์เซอร์ แล้วดู PHP Version ที่ด้านบนของหน้า

  3. ลบไฟล์ทันทีหลังตรวจสอบเสร็จ เพราะไฟล์นี้เปิดเผยการตั้งค่าเซิร์ฟเวอร์ทั้งหมด

แผงควบคุมโฮสติ้งหลายระบบ เช่น cPanel และ Plesk ก็แสดงเวอร์ชัน PHP ให้ดูเช่นกัน

สำหรับผู้ใช้แพ็กเกจจากดิสทริบิวชัน Linux: Ubuntu, Debian, RHEL และดิสทริบิวชันอื่น ๆ มักนำแพตช์มาใส่ในแพ็กเกจเดิมโดยไม่เปลี่ยนหมายเลขเวอร์ชัน ในกรณีนี้ ให้ค้นหารหัส CVE ในบันทึกการเปลี่ยนแปลงของแพ็กเกจแทน (ดูวิธีด้านล่าง)

Node.js

node -v

หากแสดง v26.12.1, v24.22.1, v22.23.4 หรือเวอร์ชันที่ใหม่กว่าในรุ่นหลักเดียวกัน แสดงว่าติดตั้งแพตช์แล้ว

วิธีอัปเดต PHP

เลือกวิธีที่ตรงกับการติดตั้ง PHP บนเซิร์ฟเวอร์ของคุณ

โฮสติ้งแบบ shared หรือ managed

ผู้ให้บริการเป็นผู้ดูแล PHP และติดตั้งแพตช์ให้ ตรวจสอบหน้าสถานะบริการหรือประกาศของผู้ให้บริการ แล้วตรวจสอบเวอร์ชันด้วย phpinfo() ตามวิธีข้างต้น หากแผงควบคุมให้เลือกเวอร์ชัน PHP ได้ และคุณยังใช้ 8.1 หรือต่ำกว่า ให้เปลี่ยนเป็น 8.2 ขึ้นไป โดยตรวจสอบก่อนว่า CMS และปลั๊กอินที่ใช้รองรับเวอร์ชันนั้น

Ubuntu / Debian

sudo apt update
# replace 8.3 with the PHP branch you use
sudo apt install --only-upgrade 'php8.3-*'

# confirm the fix is included
apt changelog php8.3-fpm | grep -E 'CVE-2026-10961(8|9)'

หากคำสั่งสุดท้ายไม่แสดงผล แสดงว่าแพตช์ยังไม่เข้า repository ของดิสทริบิวชันที่คุณใช้ ตรวจสอบที่ Ubuntu Security Notices หรือ Debian Security Tracker แล้วลองใหม่ภายหลัง หากใช้แพ็กเกจ PHP ของ Ondřej Surý ให้อัปเดตจาก repository นั้นด้วยวิธีเดียวกัน

RHEL / AlmaLinux / Rocky Linux

dnf module list php          # see which PHP stream you're on
sudo dnf upgrade 'php*'

# confirm the fix is included
rpm -q --changelog php-fpm | grep -E 'CVE-2026-10961(8|9)'

หากใช้ repository ของ Remi ให้อัปเดตจากที่นั่น

Docker

การ pull image ใหม่ไม่ได้อัปเดตคอนเทนเนอร์ที่กำลังทำงานอยู่ คุณต้อง pull, build ใหม่ และสร้างคอนเทนเนอร์ใหม่:

docker pull php:8.3-fpm        # use your tag
docker compose build --pull
docker compose up -d

เพื่อความแน่ใจ ให้ระบุเวอร์ชันที่มีแพตช์ไว้ใน Dockerfile เช่น FROM php:8.3.36-fpm

คอมไพล์จากซอร์สโค้ด หรือใช้ Windows

ดาวน์โหลดเวอร์ชันที่แก้ไขแล้วจาก php.net/downloads

จากนั้นรีสตาร์ต PHP

ขั้นตอนนี้มักถูกมองข้าม โปรเซสที่กำลังทำงานจะยังใช้ PHP เวอร์ชันเก่าจนกว่าจะรีสตาร์ต:

# PHP-FPM (Debian/Ubuntu; replace 8.3 with your branch)
sudo systemctl restart php8.3-fpm

# PHP-FPM (RHEL family)
sudo systemctl restart php-fpm

# Apache with mod_php
sudo systemctl restart apache2   # or httpd on RHEL

แล้วตรวจสอบ phpinfo() อีกครั้ง เพื่อยืนยันว่าระบบใช้เวอร์ชันใหม่แล้ว

“เปลี่ยนการตั้งค่าแทนการอัปเดตได้ไหม?”

ไม่ได้ ช่วงแรกมีการแนะนำวิธีแก้ขัด เช่น ปิด session.upload_progress.enabled แต่วิธีเหล่านี้ช่วยลดความเสี่ยงได้เท่านั้น นักพัฒนาทีมหลักของ PHP ระบุต่อสาธารณะว่าการอัปเดต PHP เป็นวิธีเดียวที่แก้ปัญหาได้จริง หากคุณใช้วิธีแก้ขัดอยู่ ให้คงไว้จนกว่าจะอัปเดตเสร็จ แต่อย่าใช้แทนการอัปเดต

วิธีอัปเดต Node.js

ติดตั้งผ่าน

วิธีอัปเดต

nvm

nvm install 24 (หรือ 22 / 26) แล้วรัน nvm alias default 24

ตัวติดตั้งอย่างเป็นทางการ

ดาวน์โหลดเวอร์ชันล่าสุดในรุ่นหลักที่คุณใช้จาก nodejs.org/en/download

Docker

ระบุ tag ของเวอร์ชันที่มีแพตช์ให้ชัดเจน เช่น FROM node:24.22.1 แล้วรัน docker pull และ build ใหม่ หากใช้ tag ที่ไม่ระบุเวอร์ชันย่อย เช่น node:24 การ build จาก image ในแคชอาจทำให้ยังได้เวอร์ชันเก่า

Homebrew

brew update && brew upgrade node (หรือ node@24 / node@22) แพ็กเกจใน Homebrew อาจมาช้ากว่าหลายชั่วโมง หากต้องรีบอัปเดต ให้ใช้ nvm หรือตัวติดตั้ง

ตัวจัดการแพ็กเกจบน Linux

อัปเดตผ่าน repository ของดิสทริบิวชันหรือ NodeSource ตามปกติ

แพลตฟอร์มโฮสติ้ง (Vercel, Netlify, Heroku, Render ฯลฯ)

ตรวจสอบการตั้งค่า runtime และประกาศของแพลตฟอร์ม ส่วนใหญ่อัปเดต runtime ที่มีแพตช์ให้โดยอัตโนมัติ แต่คุณอาจต้อง deploy ใหม่

หลังอัปเดต ให้รีสตาร์ตแอป (หรือ deploy ใหม่) แล้วตรวจสอบเวอร์ชันด้วย node -v

หากใช้เวอร์ชันที่หมดระยะสนับสนุนแล้ว

แพตช์อย่างเป็นทางการจะออกให้เฉพาะเวอร์ชันที่ยังได้รับการสนับสนุน:

  • PHP: 8.2, 8.3, 8.4 และ 8.5 ส่วน PHP 8.1 และต่ำกว่าจะไม่มีแพตช์อย่างเป็นทางการ ดิสทริบิวชัน Linux บางรายและผู้ให้บริการสนับสนุนระยะยาวแบบเสียเงินอาจนำแพตช์มาใส่ในเวอร์ชันเก่าให้ ควรตรวจสอบกับผู้ให้บริการที่คุณใช้ หากไม่มี การอัปเกรดไปยังรุ่นที่ยังได้รับการสนับสนุนคือทางเลือกที่ปลอดภัย ทั้งนี้ PHP 8.2 จะได้รับแพตช์ความปลอดภัยถึงวันที่ 31 ธันวาคม 2569 เท่านั้น

  • Node.js: 22.x, 24.x และ 26.x ส่วนรุ่นอย่าง 25, 23 และ 20 หมดระยะสนับสนุนแล้วและจะไม่ได้รับแพตช์

หากยังอัปเกรดทันทีไม่ได้ ให้พิจารณาใช้ไฟร์วอลล์สำหรับเว็บแอปพลิเคชันคั่นหน้าเว็บไซต์ หรือจำกัดการเข้าถึงไว้ก่อนจนกว่าจะอัปเกรดได้

อ่านเพิ่มเติม

ประกาศอย่างเป็นทางการ

คู่มือที่เป็นประโยชน์

แชร์บทความนี้
คัดลอกแล้ว!
Patrick Wunderlin

เขียนโดย

Patrick Wunderlin

ผู้ก่อตั้ง WireBoard.io วิศวกรคอมพิวเตอร์จาก EPFL หลงใหลใน Web Analytics การประมวลผลข้อมูลแบบเรียลไทม์ และการสร้างเครื่องมือที่ช่วยให้ธุรกิจเติบโต

อันดับยังแกว่ง แต่เครื่องมือติดตามอันดับของคุณเชื่อได้แค่ไหน?
SEO รายวัน ·

อันดับยังแกว่ง แต่เครื่องมือติดตามอันดับของคุณเชื่อได้แค่ไหน?

เครื่องมือติดตามอันดับกำลังหลอกคุณอยู่หรือเปล่า? อันดับบน Google ผันผวนมาราวหนึ่งเดือนแล้ว คะแนนความผันผวนรายวันอยู่ในระดับปานกลางถึงสูงมาตั้งแต่ปลายเดือนกันยายน และขึ้นไปแตะเกือบ 7.9 ในช่วงต้นเดือนตุลาคม...

สัญญาณชะลอในผลจัดอันดับ และงานเก็บ URL ให้เรียบร้อย
SEO รายวัน ·

สัญญาณชะลอในผลจัดอันดับ และงานเก็บ URL ให้เรียบร้อย

อันดับเริ่มนิ่งลง แต่ลมยังไม่สงบเต็มที่ บรรยากาศ SEO ตอนนี้อยู่ในโหมด windy-cloud ยังไม่ถึงกับปั่นป่วน แต่ก็ยังไม่นิ่ง ความผันผวนอยู่ในระดับปานกลางค่อนข้างสูงมาตั้งแต่ 23 กันยายน โดยสัปดาห์ล่าสุดแกว่งแถวเลข 7 ต้น ๆ ก่อนจะอ่อนลงมาเป็นค่าเบื้องต้นวันนี้ที่ 5.9/10...

เมฆหมอก AI Search หนาขึ้น อันดับเริ่มแผ่ว
SEO รายวัน ·

เมฆหมอก AI Search หนาขึ้น อันดับเริ่มแผ่ว

AI Links สำคัญขึ้นเรื่อยๆ ประเด็นหลักยังอยู่ที่การมองเห็นใน AI Search โดย Google ประกาศเมื่อ 15 ตุลาคมว่า AI Mode และ AI Overviews จะเพิ่มลิงก์ในเนื้อหา ดันตำแหน่งลิงก์ให้เด่นขึ้น มีบล็อกเว็บทางการมากขึ้น และ...

WireBoard

ติดตามเว็บของคุณแบบเรียลไทม์

แดชบอร์ดเรียลไทม์ที่คุณสร้างเองได้ เริ่มต้นใช้ฟรี ไม่ต้องใช้บัตรเครดิต ไม่ยุ่งยาก