สรุปสั้น

ช่องโหว่ใหม่ใน WordPress core เปิดทางให้ผู้เยี่ยมชมที่ไม่ต้องล็อกอิน (anonymous) ทิ้งคอมเมนต์ที่ฝังสคริปต์ซ่อนไว้บนหน้าเว็บได้ และหากผู้ดูแลระบบที่ล็อกอินอยู่เปิดหน้านั้นในภายหลัง สคริปต์ดังกล่าวจะสามารถรันโค้ดบนเซิร์ฟเวอร์ของเว็บไซต์ได้ WordPress แก้ไขช่องโหว่นี้ซึ่งถูกติดตามในชื่อ CVE-2026-93485 และเรียกกันว่า “Comment2Shell” เมื่อวันที่ 17 กันยายน 2569 ในเวอร์ชัน 7.1.1 พร้อมแนะนำให้เจ้าของเว็บไซต์อัปเดตทันที

บริษัท Patchstack ซึ่งเป็นผู้กำหนดรหัสช่องโหว่ให้คะแนนความรุนแรงที่ 7.1 จาก 10 บนมาตรวัด CVSS ปัจจุบันยังไม่มีสัญญาณว่าช่องโหว่ถูกนำไปใช้โจมตีจริง และยังไม่อยู่ในรายชื่อช่องโหว่ที่ถูกใช้โจมตีจริง (KEV) ของรัฐบาลสหรัฐ ต้นตอของปัญหาอยู่ตรงช่องว่างระหว่างสองขั้นตอน คือ WordPress จะตรวจ HTML อันตรายในคอมเมนต์ตอนบันทึก แต่จะจัดรูปแบบใหม่อีกครั้งตอนแสดงผลบนหน้าเว็บ และช่องโหว่ก็ซ่อนอยู่ในช่องว่างระหว่างสองขั้นตอนนี้เอง

รายละเอียดข่าว

เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 22 กันยายน 2569 ว่า นาย Rafie Muhammad นักวิจัยด้านความปลอดภัยผู้รายงานช่องโหว่นี้ ได้เปิดเผยรายละเอียดห่วงโซ่การโจมตีทั้งหมดในบทวิเคราะห์เมื่อวันที่ 21 กันยายน 2569 โดยกลไกสำคัญคือการวางอักขระขึ้นบรรทัดใหม่ (line break) ไว้ภายในแอตทริบิวต์ของแท็ก HTML ที่ได้รับอนุญาตในคอมเมนต์ เมื่อ WordPress จัดรูปแบบคอมเมนต์ใหม่เพื่อแสดงผล หนึ่งในขั้นตอนจะแยกแท็กนั้นออกจากกันและย้ายข้อความของผู้โจมตีไปอยู่ในตำแหน่งที่เบราว์เซอร์มองว่าเป็น event handler ที่ทำงานได้จริง

ผลคือ handler นั้นจะทำงานโดยอัตโนมัติทันทีที่หน้าเว็บโหลด โดยไม่ต้องมีการคลิกใด ๆ สคริปต์จะรันในเบราว์เซอร์ของผู้ที่เปิดหน้านั้น ไม่ว่าจะล็อกอินอยู่หรือไม่ และทำงานด้วยระดับสิทธิ์ของบุคคลผู้นั้นต่อเว็บไซต์ อย่างไรก็ตาม การจะรันโค้ดบนเซิร์ฟเวอร์ได้ยังต้องมีเงื่อนไขเพิ่มอีกหนึ่งข้อ คือต้องมีผู้ดูแลระบบที่ล็อกอินอยู่เปิดหน้าที่มีคอมเมนต์นั้น เมื่อนั้นสคริปต์จึงจะใช้เซสชันของแอดมินเองในการอัปโหลดปลั๊กอินที่บรรจุ web shell ซึ่งเป็นไฟล์ขนาดเล็กที่รันคำสั่งใดก็ตามที่ผู้โจมตีส่งมา อันเป็นเส้นทางที่รู้จักกันดีจากเบราว์เซอร์ของแอดมินไปสู่การควบคุมเซิร์ฟเวอร์

การโจมตียังขึ้นกับวิธีที่เว็บไซต์แสดงคอมเมนต์ โดยได้ผลกับเว็บไซต์ที่ใช้ block theme ซึ่งเป็นค่าเริ่มต้นของ WordPress มาตั้งแต่ธีม Twenty Twenty-Two และ classic theme บางตัวที่จัดรูปแบบคอมเมนต์ผ่านขั้นตอนเดียวกันก็ได้รับผลกระทบด้วย โดยบทวิเคราะห์ระบุชื่อธีม Twenty Twenty-One ไว้เป็นตัวอย่าง ทั้งนี้ WordPress อธิบายว่าช่องโหว่จะโจมตีได้ “ก็ต่อเมื่อคอมเมนต์ผ่านการอนุมัติ” แต่ผู้วิจัยได้อธิบายวิธีเลี่ยงการตรวจสอบดังกล่าว ทำให้คอมเมนต์ขึ้นหน้าเว็บได้โดยไม่ต้องรออนุมัติ ดังที่ Patchstack สรุปว่า “การกลั่นกรอง (moderation) ไม่ใช่กลไกความปลอดภัย”

WordPress Comment2Shell flaw turns comment XSS into RCE via admin session

รายละเอียดช่องโหว่

หัวใจของ Comment2Shell คือการที่ WordPress ตรวจสอบและจัดรูปแบบคอมเมนต์คนละขั้นตอนกัน ขั้นตอนตรวจ HTML อันตรายเกิดตอนบันทึก ส่วนการจัดรูปแบบใหม่เกิดตอนแสดงผล เมื่อผู้โจมตีสอดอักขระขึ้นบรรทัดใหม่เข้าไปในแอตทริบิวต์ของแท็กที่อนุญาต ตัวจัดรูปแบบตอนแสดงผลจะทำให้โครงสร้างแท็กเพี้ยนไป จนข้อความของผู้โจมตีกลายเป็น event handler ที่เบราว์เซอร์รันเองโดยไม่ต้องอาศัยการโต้ตอบจากผู้ใช้ จึงจัดเป็น XSS แบบ zero-click ที่ผู้โจมตีไม่ต้องล็อกอิน (pre-auth)

การยกระดับจาก XSS ไปสู่ remote code execution (RCE) อาศัยข้อเท็จจริงที่ว่า ในเว็บ WordPress ผู้ดูแลระบบมีสิทธิ์ติดตั้งปลั๊กอินได้ เมื่อสคริปต์ทำงานในเบราว์เซอร์ของแอดมินโดยใช้เซสชันของแอดมินเอง จึงสามารถสั่งอัปโหลดปลั๊กอินที่ฝัง web shell แล้วเข้าควบคุมเซิร์ฟเวอร์ได้ ทั้งนี้เวอร์ชันที่ได้รับผลกระทบครอบคลุมตั้งแต่ 4.7 ไปจนถึง 7.1 นอกจากนี้ WordPress 7.1.1 ยังแก้ช่องโหว่ด้านความปลอดภัยรวมทั้งสิ้น 11 รายการ โดยช่องโหว่คอมเมนต์นี้เป็นรายการเดียวที่ผู้โจมตีซึ่งไม่มีบัญชีเข้าถึงได้ ส่วนที่เหลือส่วนใหญ่ต้องอาศัยผู้ใช้ที่ล็อกอินและมีสิทธิ์ระดับหนึ่ง รวมถึงช่องโหว่ที่สองชื่อ Click2Shell ที่ลิงก์ที่ถูกสร้างขึ้นเป็นพิเศษสามารถทำให้ WordPress ติดตั้งธีมและรันโค้ดบนเซิร์ฟเวอร์ได้เมื่อทำงานร่วมกับจุดอ่อนที่สองในธีมนั้น ซึ่งก็ต้องอาศัยแอดมินเปิดลิงก์เช่นกัน

ผลกระทบ

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

แม้ปัจจุบันยังไม่พบการนำไปใช้โจมตีจริง แต่เมื่อรายละเอียดทางเทคนิคของห่วงโซ่การโจมตีถูกเผยแพร่ต่อสาธารณะแล้ว ช่วงเวลาที่เว็บไซต์ยังไม่แพตช์ย่อมกลายเป็นหน้าต่างความเสี่ยงที่ผู้โจมตีอาจฉวยโอกาส ที่ผ่านมาในปีนี้ WordPress core เคยมีช่องโหว่ร้ายแรงอื่นมาแล้ว เช่น ช่องโหว่ชื่อ wp2shell ในเดือนกรกฎาคมที่เปิดให้รันโค้ดได้โดยไม่ต้องล็อกอินเลย และต่อมาทางการสหรัฐได้ขึ้นบัญชีว่าถูกใช้โจมตีจริง

คำแนะนำ

ผู้ดูแลเว็บไซต์ควรอัปเดตเป็น WordPress 7.1.1 หรืออัปเดตเป็นรุ่นล่าสุดบน branch ของตนที่ยังได้รับการแก้ไขด้านความปลอดภัยโดยเร็วที่สุด โดยรุ่นที่แก้ไขแล้วสำหรับ branch ปัจจุบันได้แก่ WordPress 7.1 อัปเดตเป็น 7.1.1, WordPress 7.0 อัปเดตเป็น 7.0.5, WordPress 6.9 อัปเดตเป็น 6.9.8 ส่วน branch เก่ากว่าย้อนไปถึง 4.7 ให้ติดตั้งรุ่นที่แก้ไขของ branch นั้น (ต่ำสุดถึง 4.7.36) ตามที่ระบุในเอกสารการออกเวอร์ชันของ WordPress

เว็บไซต์ที่ยังอัปเดตทันทีไม่ได้ สามารถปิดช่องทางเข้าได้ด้วยการปิดคอมเมนต์บนโพสต์หรือปิดคอมเมนต์ทั้งเว็บไซต์ และ web application firewall หรือปลั๊กอินด้านความปลอดภัยอาจช่วยบล็อกคอมเมนต์ที่ถูกสร้างขึ้นเป็นพิเศษได้ อย่างไรก็ตาม การอัปเดตช่วยแก้ช่องโหว่ได้ แต่ไม่ได้ย้อนคืนการเปลี่ยนแปลงที่ผู้โจมตีทำไปแล้ว เว็บไซต์ที่มีเหตุอันควรเชื่อว่าตกเป็นเป้าควรตรวจหาปลั๊กอินหรือไฟล์ที่ไม่รู้จักเพิ่มเติมด้วย

แหล่งอ้างอิง