WordPress 7.1.3 ปิดช่องโหว่ 7 ตัว (XSS, SQLi, ข้อมูลรั่ว) อัปเดตเลย
ใครดูแลเว็บ WordPress ให้เปิดหน้า Updates แล้วขึ้น 7.1.3 หรืออย่างน้อยรุ่น backport ของสายที่ใช้อยู่ภายในรอบดูแลถัดไป ถ้าเว็บเปิดคอมเมนต์ให้คนนอกหรือมีผู้ใช้ระดับ Author ให้ทำก่อน
สรุปใน 1 นาที
- อาการ/ปัญหา
- WordPress core มีช่องโหว่ความปลอดภัย 7 ตัว ทั้ง XSS, SQL injection แบบ second-order, DoS และการเปิดเผยข้อมูลคอมเมนต์
- ใครควรอ่าน
- ทุกเว็บที่รัน WordPress ก่อน 7.1.3 รวมสายเก่าที่ยังได้ backport
- ทางแก้แบบสั้น
- อัปเดตเป็น 7.1.3 หรือรุ่น backport ของสายนั้น แล้วเช็กเลขรุ่นด้วย wp core version
พอดีเห็นประกาศ WordPress 7.1.3 ออกมาเมื่อ 6 ต.ค. 2026 ในหน้า news ของโครงการ เลยนั่งอ่านรายการแก้ไขทีละข้อก่อนสรุปให้เพื่อนๆ ที่ดูแลเว็บ WordPress อยู่ รอบนี้ไม่มีช่องโหว่ตัวเดียวที่ดังเป็นพิเศษ แต่เป็นชุดเจ็ดตัวที่กระจายไปหลายส่วนของ core ตั้งแต่หน้าจัดการคอมเมนต์ไปจนถึงตัว export และตัว embed
เกิดอะไรขึ้นในรุ่น 7.1.3
ประกาศของ WordPress เรียกรุ่นนี้ว่า Maintenance and Security Release มีช่องโหว่ความปลอดภัย 7 ตัว กับบั๊กทั่วไปอีก 4 ตัว ไฟล์ที่ถูกแก้ตามหน้า Version 7.1.3 มีตั้งแต่ wp-admin/js/common.js, wp-admin/includes/export.php, class-wp-http.php, class-wp-oembed.php, class-wp-query.php ไปจนถึง post.php และ REST posts controller ส่วน package ที่เป็นส่วนเสริมไม่มีตัวไหนถูกแก้
ผมสรุปทั้งเจ็ดข้อเป็นตารางให้ ชื่อผู้รายงานคือเครดิตตามที่ประกาศเขียนไว้
| # | ช่องโหว่ (ตามประกาศ) | ผู้รายงาน |
|---|---|---|
| 1 | Stored XSS ในหน้าจัดการคอมเมนต์ ทริกเกอร์ผ่านคอมเมนต์ที่รออนุมัติ | Trail of Bits ร่วมกับ OpenAI |
| 2 | DoS ในเมธอด WP_Http::make_absolute_url() |
Anthropic |
| 3 | SQL injection แบบ second-order ใน WXR export | Anthropic |
| 4 | ผู้ใช้ระดับ Author ทำให้โพสต์เป็น sticky ได้ | Anthropic |
| 5 | เปิดเผยคอมเมนต์ของโพสต์ส่วนตัวและโพสต์ที่ยังไม่เผยแพร่ได้โดยไม่ต้องล็อกอิน | Ananda Dhakal (Patchstack) |
| 6 | XSS ใน Imgur embed | Zhengyu Liu, Jingcheng Yang, Gavin Zhong |
| 7 | พารามิเตอร์ที่ปลอมได้ในฮุก {status}_{type} ทำให้ชื่อ action ชนกัน |
Alex Concha (ทีม security ของ WordPress) |
ข้อ 3 อธิบายง่ายๆ ได้ว่า second-order คือข้อมูลที่ถูกเก็บลงฐานข้อมูลไปก่อนอย่างปลอดภัย แล้วถูกนำกลับมาต่อเป็นคำสั่ง SQL ในขั้นตอนอื่นภายหลังโดยไม่ได้ escape อีกรอบ ในกรณีนี้คือตอน export ข้อมูลเป็นไฟล์ WXR ส่วนข้อ 5 คือคนทั่วไปที่ไม่ได้ล็อกอินอ่านคอมเมนต์ของโพสต์ที่ควรเป็นส่วนตัวได้
ระดับความรุนแรง
ผมเปิดประกาศรุ่น 7.1.3 และหน้า Version 7.1.3 ของโครงการแล้ว ไม่มีเลข CVE และไม่มีคะแนน CVSS ระบุไว้ในสองหน้านี้ โครงการบอกแค่ว่าเป็น security release และ "แนะนำให้อัปเดตทันที" ผมเลยจะไม่เดาคะแนนให้ แต่ดูจากเงื่อนไขที่ชื่อข้อบอกเอง ได้ความต่างดังนี้
- ข้อ 5 ไม่ต้องล็อกอินเลย แต่ผลคือข้อมูลรั่ว ไม่ใช่การยึดเครื่อง
- ข้อ 1 ต้องมีคอมเมนต์ที่มี payload เข้าไปค้างในคิวรออนุมัติ แล้วมีคนเปิดหน้าจัดการคอมเมนต์ในฐานะแอดมิน ซึ่งเป็นรูปแบบ XSS ที่ใช้จี้ session ของแอดมินได้
- ข้อ 4 ต้องมีบัญชี Author อยู่แล้ว
- ประกาศไม่ได้บอกว่ามีการโจมตีจริงกับข้อใดเลย และเพราะยังไม่มีเลข CVE ในประกาศ ผมเลยค้นรายตัวใน CISA KEV ไม่ได้ ข้อมูลถึง 5 พ.ย. 2026 ผมเลยบอกได้แค่ว่าไม่พบคำว่า exploited ในแหล่งที่เปิดอ่าน
ประกาศไม่ได้พูดถึงโค้ดโจมตีสาธารณะเลย ทั้งทางว่ามีและทางว่าไม่มี ผมเลยไม่ยืนยันทั้งสองทาง อย่าเอาไปอ่านว่าปลอดภัยเพราะยังไม่มีข่าว
ใครโดนบ้าง รุ่นไหนแก้แล้ว
ประกาศเขียนว่าการแก้ไขเหล่านี้ "เป็นมารยาท" นำไปใส่ในสายเก่าที่ได้รับผลกระทบด้วย และย้ำว่า มีเพียงรุ่นล่าสุดเท่านั้นที่ได้รับการดูแลจริง ผลคือสายที่เก่ากว่าอาจได้ backport หรือไม่ก็ได้ และประกาศไม่ได้ระบุเป็นตารางว่าแต่ละสายแก้ที่เลขไหน ต้องดูเลขรุ่นที่ Dashboard เสนอให้ หรือหน้า releases ของโครงการ ผมเลยไม่ใส่ตารางเลขสายเก่าที่ยืนยันไม่ได้
| สถานะ | ต้องทำ |
|---|---|
| สายล่าสุด 7.1.x | อัปเดตเป็น 7.1.3 ขึ้นไป (มี 7.1.4 ตามมาแล้ว ดูกล่องเตือนด้านล่าง) |
| สายเก่ากว่า | ดูว่า Dashboard เสนอรุ่น backport ของสายนั้นหรือไม่ แล้วอัปเดต |
| ตั้ง auto-update ไว้ | ประกาศ 7.1.3 ไม่ได้พูดถึง background update (รุ่น 7.1.2 พูดไว้) ให้เช็กเลขรุ่นจริงเอง |
วิธีอัปเดต
จาก Dashboard ไปที่ Updates แล้วกด Update Now หรือใช้ wp-cli ในเครื่องที่ดูแลหลายเว็บ ลำดับที่ผมแนะนำคือ
- สำรองก่อน ไฟล์เว็บและฐานข้อมูล อย่างน้อยหนึ่งชุดที่กู้กลับได้จริง
- อัปเดต core ผ่าน Dashboard หรือ wp-cli ตามคำสั่งด้านล่าง
- เช็กเลขรุ่นและ checksum แล้วเปิดหน้าเว็บกับหน้า wp-admin ดูว่าใช้งานปกติ
# รุ่นปัจจุบันและสิ่งที่มีให้อัปเดต
wp core version
wp core check-update
# อัปเดตเฉพาะ minor/security ในสายเดิม
wp core update --minor
# ยืนยันว่ารุ่นเปลี่ยนแล้ว และไฟล์ core ตรงกับต้นฉบับ
wp core version
wp core verify-checksums
ถ้ารันเป็น root ให้สั่งผ่านผู้ใช้ของเว็บ เช่น sudo -u webuser wp core update --minor --path=/var/www/example.com เพื่อไม่ให้ไฟล์เปลี่ยนเจ้าของ สำหรับหลายเว็บให้ไล่จากรายชื่อไดเรกทอรี
while read -r p; do
printf '%s : ' "$p"
sudo -u webuser wp --path="$p" core version
done < sites.txt
หลังรุ่น 7.1.3 มี 7.1.4 ออกตามมา เมื่อ 28 ต.ค. 2026 เพื่อแก้ CVE-2026-119977 ซึ่งเป็นช่องโหว่ที่เกี่ยวกับช่วงอัปเกรด และ CISA ลงรายการนี้ใน KEV เมื่อ 3 พ.ย. 2026 ผมเขียนแยกไว้แล้วที่ [บทความเรื่อง CVE-2026-119977](/article/wordpress-cve-2026-119977-upgrade-race-patch-now) ถ้าเว็บใดหยุดที่ 7.1.3 ให้ขึ้นต่ออีกขั้น
เช็กว่าโดนหรือยัง
ประกาศไม่ได้ปล่อย indicator of compromise ของช่องโหว่ชุดนี้ ผมเลยบอกได้แค่สิ่งที่เช็กได้ทั่วไปตามลักษณะของแต่ละข้อ
- ข้อ 1 และ 6 (XSS) ดูคอมเมนต์ที่ค้างรออนุมัติว่ามี tag
scriptหรือ attribute แปลกๆ และดูบัญชีแอดมินที่เพิ่มขึ้นมา - ข้อ 4 ดูโพสต์ที่เป็น sticky ซึ่งคนเขียนไม่ได้ตั้งใจ
- ข้อ 5 ไม่มีร่องรอยที่เว็บเก็บเอง ถ้าเว็บมีโพสต์ส่วนตัวที่คอมเมนต์ไม่ควรเปิด ให้ถือว่าอ่านได้ระหว่างที่ยังไม่อัปเดต
- ข้อ 3 ดู log ของฐานข้อมูลหากเปิดไว้ว่ามีการ export ผิดเวลา และรีวิวว่าใครมีสิทธิ์ export ได้
# คอมเมนต์ที่ค้างรออนุมัติ ดูเนื้อหาด้วยตา
wp comment list --status=hold --fields=comment_ID,comment_author,comment_content
# แอดมินที่ไม่ได้สร้างเอง และโพสต์ sticky
wp user list --role=administrator --fields=ID,user_login,user_registered
wp option get sticky_posts --format=json
ส่วนตัวผม ชุดนี้ไม่ใช่แบบต้องปลุกคนขึ้นมาแพตช์ตอนดึก เพราะประกาศไม่มีรายงานโจมตีจริง และหลายข้อต้องมีสิทธิ์เป็น Author หรือต้องมีแอดมินเปิดหน้าคอมเมนต์ แต่ก็ไม่ควรเก็บไว้รอบเดือนหน้า ถ้าเว็บเปิดคอมเมนต์ให้คนทั่วไปหรือมีผู้ใช้หลายคน ให้อัปเดตภายในหนึ่งถึงสองวันทำการ ตามกำลังคนของแต่ละที่ และเมื่อมี 7.1.4 ออกแล้ว ให้ข้ามไปขึ้นรุ่นนั้นเลยดีกว่าหยุดที่ 7.1.3
ปล. ประกาศบอกว่าการ backport ยังทยอยออกอยู่ตอนที่โพสต์ ใครอยู่สายเก่าอย่าเพิ่งสรุปว่า "ไม่มีรุ่นให้" ให้ลองเช็ก Dashboard ซ้ำอีกรอบ
ที่มา: WordPress 7.1.3 Maintenance and Security Release (https://wordpress.org/news/2026/10/wordpress-7-1-3-maintenance-and-security-release/), Version 7.1.3 (https://wordpress.org/documentation/wordpress-version/version-7-1-3/), WordPress 7.1.1 (https://wordpress.org/news/2026/09/wordpress-7-1-1-maintenance-and-security-release/), WordPress 7.1.2 (https://wordpress.org/news/2026/09/wordpress-7-1-2-release/) ข้อมูลถึง 5 พ.ย. 2026 ถ้ามี CVE หรือคะแนนออกมาเพิ่มเดี๋ยวกลับมาแก้เพิ่มให้ภายหลังครับ
อยากให้เราทำให้ไหม?
ให้เราช่วยติดตั้ง ตั้งค่า ย้ายระบบ หรือแก้ปัญหาเซิร์ฟเวอร์ เพื่อให้คุณมีเวลาไปทำงานที่สำคัญกว่า
เคยเจองานแบบนี้ไหม? ติดตรงไหน?
มาแลกวิธีกันต่อในบอร์ด LinuxThai



ความคิดเห็น 0
ยังไม่มีความคิดเห็น — เป็นคนแรกเลย