สรุปสั้น
ปลั๊กอิน Forminator Forms ซึ่งเป็นตัวสร้างฟอร์มยอดนิยมของ WordPress ที่มีการติดตั้งใช้งานอยู่มากกว่า 600,000 แห่ง ถูกเปิดเผยช่องโหว่ระดับวิกฤตที่เปิดทางให้ผู้โจมตีรันโค้ดตามอำเภอใจบนเว็บที่ได้รับผลกระทบ ช่องโหว่นี้ถูกติดตามในหมายเลข CVE-2026-15748 ได้คะแนน CVSS 9.8 จาก 10.0 และถูกค้นพบและรายงานโดยนักวิจัยความปลอดภัยที่ใช้ชื่อออนไลน์ว่า “daroo” โดยบริษัท Wordfence ระบุว่าผู้โจมตีที่ไม่ต้องยืนยันตัวตนใด ๆ สามารถอัปโหลดไฟล์ตามอำเภอใจ ซึ่งรวมถึงไฟล์ PHP ที่รันได้ ขึ้นไปวางบนเว็บที่มีช่องโหว่ จนนำไปสู่การรันโค้ดระยะไกลและการยึดเว็บได้ทั้งไซต์
เงื่อนไขสำคัญที่ทำให้การโจมตีสำเร็จคือเว็บนั้นต้องมีฟอร์มที่มีทั้งฟิลด์ File Upload และฟิลด์ Select อยู่ในฟอร์มเดียวกัน ช่องโหว่กระทบทุกเวอร์ชันตั้งแต่ก่อน 1.56.1 รวมถึงตัว 1.56.1 เอง และได้รับการแก้ไขแล้วในเวอร์ชัน 1.56.2 ที่ปล่อยออกมาเมื่อวันที่ 31 กรกฎาคม 2569 ต้นเหตุอยู่ที่ฟังก์ชัน handle_file_upload() ซึ่งตรวจสอบชนิดไฟล์ที่ผู้ใช้ส่งเข้ามาไม่รัดกุมพอ
การเปิดเผยครั้งนี้เกิดขึ้นไม่กี่วันหลังจาก Wordfence เปิดเผยช่องโหว่ข้ามการยืนยันตัวตนระดับวิกฤตอีกตัวในปลั๊กอิน User Profile Builder ที่มีการติดตั้งใช้งานมากกว่า 40,000 แห่ง ซึ่งเปิดทางให้ผู้โจมตีที่ไม่ต้องยืนยันตัวตนล็อกอินเป็นผู้ใช้ ID 1 ที่ตามปกติคือบัญชีผู้ดูแลระบบของเว็บ เจ้าของเว็บที่ใช้ปลั๊กอินใดตัวหนึ่งจากสองตัวนี้จึงควรอัปเดตโดยเร็วที่สุด
รายละเอียดข่าว
เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 17 สิงหาคม 2569 ว่ามีการเปิดเผยช่องโหว่ความปลอดภัยระดับวิกฤตในปลั๊กอิน Forminator Forms ของ WordPress ซึ่งอาจถูกใช้เพื่อรันโค้ดตามอำเภอใจบนเว็บที่ได้รับผลกระทบ
บริษัท Wordfence ซึ่งเป็นผู้เผยแพร่รายงานทางเทคนิคระบุว่า “ช่องโหว่นี้ทำให้ผู้โจมตีที่ไม่ผ่านการยืนยันตัวตนสามารถอัปโหลดไฟล์ตามอำเภอใจ รวมถึงไฟล์ PHP ที่รันได้ ขึ้นไปยังเว็บที่มีช่องโหว่ ซึ่งนำไปสู่การรันโค้ดระยะไกลและการยึดเว็บได้อย่างสมบูรณ์”
ตามคำอธิบายของ Wordfence ช่องโหว่นี้เป็นกรณีของ arbitrary file upload ที่อยู่ในฟังก์ชัน handle_file_upload() โดยมีต้นตอจากการตรวจสอบชนิดไฟล์ของข้อมูลที่ผู้ใช้ส่งเข้ามาไม่เพียงพอ ผลคือผู้โจมตีที่ไม่ต้องล็อกอินสามารถส่งฟอร์มพร้อมแนบไฟล์ PHP ที่สร้างขึ้นเป็นพิเศษเพื่อให้ได้ความสามารถรันโค้ดระยะไกล และเมื่อมีความสามารถนั้นแล้วก็ยึดการควบคุมเว็บได้ทั้งไซต์
จุดที่ต้องอ่านให้ครบคือค่าตั้งต้นของปลั๊กอินมีเกราะป้องกันอยู่ชั้นหนึ่ง เพราะไฟล์ที่อัปโหลดจะถูกเก็บในไดเรกทอรีที่มีไฟล์ .htaccess คุมอยู่ ซึ่งห้ามการรันไฟล์ PHP ในตำแหน่งนั้น แต่ถ้าผู้ดูแลเว็บตั้งค่า Custom File Upload Storage root เอง ไดเรกทอรีปลายทางนั้นอาจไม่มีเกราะเดียวกัน เนื่องจากไฟล์ .htaccess จะถูกสร้าง “เฉพาะเมื่อจำเป็นต้องใช้ครั้งแรก ในช่วงคำขอจากฝั่งหน้าเว็บที่ตัวช่วยของ WordPress ซึ่งรับหน้าที่เขียนไฟล์ .htaccess ไม่ได้ถูกโหลด” ผลที่ตามมาคือเพียงร้องขอไฟล์ที่อัปโหลดขึ้นไป เว็บเซิร์ฟเวอร์ก็จะรันโค้ด PHP ที่ผู้โจมตีควบคุมให้ทันที
ในรายงานฉบับเดียวกัน The Hacker News ยังรวมช่องโหว่อีกตัวที่ Wordfence เปิดเผยก่อนหน้าไม่กี่วัน คือ CVE-2026-15826 (CVSS 9.8) ในปลั๊กอิน User Profile Builder ซึ่งได้รับการแก้ไขเมื่อวันที่ 16 กรกฎาคม 2569 ด้วยการออกเวอร์ชัน 3.16.5 ทุกเวอร์ชันก่อนหน้านั้นได้รับผลกระทบ แต่ใช้โจมตีได้เฉพาะบนเว็บที่เปิดการตั้งค่า Automatically Log In ไว้เท่านั้น
ทั้งสองกรณีเป็นช่องโหว่ในปลั๊กอินของบุคคลที่สาม ไม่ใช่ในแกนของ WordPress เอง และรายงานของ Wordfence ที่อ้างถึงไม่ได้ระบุว่าพบการนำช่องโหว่ทั้งสองตัวไปใช้โจมตีจริงแล้วหรือไม่ รวมถึงไม่ได้ให้ตัวเลขว่ามีเว็บจำนวนเท่าใดที่เข้าเงื่อนไขการโจมตีจริง ๆ ทั้งเงื่อนไขฟอร์มที่ต้องมีสองฟิลด์คู่กันของ Forminator และเงื่อนไขการเปิด Automatically Log In ของ User Profile Builder
รายละเอียดช่องโหว่
Wordfence อธิบายกลไกของ CVE-2026-15748 ไว้ค่อนข้างละเอียดว่า “เกิดจากการตรวจสอบชนิดไฟล์ที่ไม่เพียงพอใน handle_file_upload ซึ่งบัญชีดำของนามสกุลอันตรายทำการจับคู่คีย์แบบตรงตัว จึงถูกข้ามได้ด้วยคีย์ชนิด MIME แบบที่ใช้เครื่องหมาย pipe คั่นทางเลือก เมื่อประกอบกับตัวจัดการการส่งฟอร์มแบบสาธารณะที่เชื่อค่าตั้งของฟิลด์อัปโหลดซึ่งผู้โจมตีควบคุมได้ ผ่านการแทรกค่าฟิลด์ Select ที่ถูกปลอมขึ้น”
แปลเป็นภาพการโจมตีคือมีจุดอ่อนสองชั้นซ้อนกัน ชั้นแรกคือบัญชีดำนามสกุลที่เทียบคีย์แบบตรงตัว ทำให้การใส่คีย์ MIME ในรูปแบบที่มีหลายทางเลือกคั่นด้วย pipe เล็ดลอดผ่านการตรวจไปได้ ชั้นที่สองคือตัวจัดการการส่งฟอร์มที่เปิดให้คนทั่วไปเรียกใช้ได้ กลับเชื่อค่าการตั้งค่าของฟิลด์อัปโหลดที่ถูกส่งมาพร้อมคำขอ ซึ่งผู้โจมตีปลอมค่าของฟิลด์ Select แทรกเข้าไปได้ ด้วยเหตุนี้ฟอร์มที่ต้องมีทั้งฟิลด์ File Upload และฟิลด์ Select จึงกลายเป็นเงื่อนไขบังคับของการโจมตี เพราะฟิลด์ Select คือช่องที่ใช้ยัดค่าตั้งปลอมเข้าไป
ประเด็นเรื่อง .htaccess เป็นตัวกำหนดว่าไฟล์ที่อัปโหลดสำเร็จจะกลายเป็นเว็บเชลล์จริงหรือไม่ ในค่าตั้งต้นไฟล์คุมจะถูกวางไว้ในไดเรกทอรีอัปโหลดและปิดการรัน PHP แต่การย้ายที่เก็บไปยัง Custom File Upload Storage root ทำให้กลไกสร้าง .htaccess ไม่ทำงานในจังหวะที่ควร เพราะกระบวนการสร้างเกิดขึ้นแบบ lazy คือรอจนมีความจำเป็นครั้งแรก ซึ่งในบริบทของคำขอจากหน้าเว็บนั้น ตัวช่วยของ WordPress ที่รับหน้าที่เขียนไฟล์ยังไม่ถูกโหลด ผลคือไดเรกทอรีนั้นไม่มีเกราะกันการรัน PHP เลย
ส่วนช่องโหว่ CVE-2026-15826 ใน User Profile Builder เป็นตัวอย่างของบั๊กที่เกิดจากลำดับการตรวจค่าผิดจังหวะ Wordfence ระบุว่า “เกิดจากฟังก์ชัน wppb_log_in_user() เรียก absint() บนค่าที่ wp_insert_user() คืนกลับมา ก่อนจะทำการตรวจด้วย is_wp_error() เมื่อมีการสมัครสมาชิกโดยใช้ชื่อผู้ใช้ยาว 61 ถึง 70 ตัวอักษร แกนของ WordPress จะปฏิเสธด้วยอ็อบเจ็กต์ WP_Error แต่ absint() แปลงอ็อบเจ็กต์นั้นเป็นจำนวนเต็ม 1 ไปก่อนที่การตรวจข้อผิดพลาดจะตัดการทำงานได้ ทำให้ปลั๊กอินผูกและคืนค่า autologin nonce ที่อ้างอิง transient ซึ่งผูกกับผู้ใช้ ID 1” ผลลัพธ์ตามคำอธิบายของ Wordfence คือ “ผู้โจมตีที่ไม่ผ่านการยืนยันตัวตนสามารถล็อกอินเป็นบัญชีผู้ดูแลระบบของเว็บ (ผู้ใช้ ID 1) ได้ ซึ่งเท่ากับการยึดสิทธิ์ผู้ดูแลระบบทั้งหมด”
ผลกระทบ
สำหรับเว็บที่ใช้ Forminator Forms และมีฟอร์มรับไฟล์คู่กับฟิลด์ตัวเลือก ผลลัพธ์ที่แย่ที่สุดไม่ใช่เพียงข้อมูลในฟอร์มรั่ว แต่คือการที่ผู้โจมตีได้เว็บเชลล์บนเซิร์ฟเวอร์โดยไม่ต้องมีบัญชีใด ๆ ซึ่งเปิดทางต่อไปยังการอ่านไฟล์ตั้งค่า wp-config.php เพื่อเอาข้อมูลรับรองฐานข้อมูล ฝังโค้ดเปลี่ยนเส้นทางหรือสคริปต์ขุดเหรียญ สร้างบัญชีผู้ดูแลระบบสำรอง และในเครื่องที่โฮสต์หลายเว็บก็อาจกระโดดข้ามไซต์ในบัญชีเดียวกันได้ ฟอร์มสมัครงาน ฟอร์มอัปโหลดเอกสาร และฟอร์มส่งใบเสนอราคาคือรูปแบบที่เข้าเงื่อนไขได้ง่ายที่สุด เพราะมักมีทั้งช่องแนบไฟล์และช่องเลือกหมวดอยู่ด้วยกัน
จำนวนการติดตั้ง 600,000 แห่งไม่ได้เท่ากับจำนวนเว็บที่ถูกโจมตีได้ทันที เพราะยังต้องผ่านเงื่อนไขฟอร์มสองฟิลด์ และในค่าตั้งต้นยังมีไฟล์ .htaccess คุมการรัน PHP อยู่ กลุ่มที่เสี่ยงสูงจริงคือเว็บที่ผู้ดูแลตั้ง Custom File Upload Storage root เอง ซึ่งมักเป็นเว็บที่ปรับแต่งเยอะ แยกที่เก็บไฟล์ออกจากโครงสร้างมาตรฐาน หรือย้ายไฟล์อัปโหลดไปยังพาธที่แชร์กับระบบอื่น นั่นทำให้เว็บที่ดูแลอย่างพิถีพิถันกลับกลายเป็นกลุ่มที่ได้รับผลกระทบเต็มรูปแบบมากกว่าเว็บที่ปล่อยตามค่าตั้งต้น
ฝั่ง User Profile Builder ผลกระทบตรงไปตรงมากว่า เพราะการล็อกอินเป็นผู้ใช้ ID 1 คือการได้สิทธิ์สูงสุดของเว็บทันทีโดยไม่ต้องเดารหัสผ่าน และเงื่อนไขเดียวคือการเปิด Automatically Log In ซึ่งเป็นการตั้งค่าที่นิยมใช้ในเว็บสมาชิกเพื่อลดขั้นตอนหลังสมัคร กรณีนี้จึงเป็นตัวอย่างว่าการตั้งค่าเพื่อความสะดวกในการสมัครสมาชิกสามารถกลายเป็นทางเข้าระดับผู้ดูแลระบบได้ ทั้งสองช่องโหว่ยังไม่มีรายงานว่าถูกใช้โจมตีจริงในรายงานที่อ้างถึง แต่ประวัติของช่องโหว่ arbitrary file upload ที่มีคะแนน 9.8 ในปลั๊กอินยอดนิยมมักถูกสแกนหาเป็นวงกว้างในเวลาไม่นานหลังรายละเอียดเผยแพร่
คำแนะนำ
- อัปเดต Forminator Forms เป็นเวอร์ชัน 1.56.2 หรือใหม่กว่าทันที และอัปเดต User Profile Builder เป็น 3.16.5 หรือใหม่กว่า
- ถ้ายังอัปเดตไม่ได้ ให้ตรวจสอบฟอร์มทุกฟอร์มว่ามีฟิลด์ File Upload คู่กับฟิลด์ Select อยู่ในฟอร์มเดียวกันหรือไม่ แล้วปิดหรือแยกฟิลด์ออกจากกันเป็นมาตรการชั่วคราว
- ตรวจว่าไดเรกทอรีที่เก็บไฟล์อัปโหลดมีไฟล์
.htaccessที่ปิดการรัน PHP อยู่จริง โดยเฉพาะเว็บที่ตั้ง Custom File Upload Storage root เอง และควรบังคับปิดการรันสคริปต์ที่ระดับการตั้งค่าเว็บเซิร์ฟเวอร์แทนการพึ่งไฟล์ที่ปลั๊กอินสร้างให้ - ค้นหาไฟล์ที่มีนามสกุล
.phpหรือนามสกุลที่รันได้ในไดเรกทอรีอัปโหลดทั้งหมด และตรวจล็อกการเข้าถึงเว็บว่ามีคำขอไปยังไฟล์ในไดเรกทอรีอัปโหลดที่ตอบกลับเป็นโค้ดสถานะ 200 อย่างผิดปกติหรือไม่ - ปิดการตั้งค่า Automatically Log In ของ User Profile Builder จนกว่าจะอัปเดตเสร็จ และตรวจรายชื่อผู้ใช้สิทธิ์ Administrator รวมถึงเวลาล็อกอินล่าสุดของบัญชี ID 1 เพื่อหาร่องรอยการเข้าใช้ที่ไม่ใช่เจ้าของ
- ทบทวนปลั๊กอินทั้งหมดที่ติดตั้งอยู่ ถอนตัวที่ไม่ได้ใช้ออกจริง ๆ ไม่ใช่เพียงปิดการทำงาน เพราะโค้ดที่ยังอยู่บนดิสก์อาจถูกเรียกใช้ได้ในบางเงื่อนไข
แหล่งอ้างอิง
- Forminator WordPress Flaw Can Enable Unauthenticated RCE via Malicious PHP Uploads — The Hacker News
- 600,000 WordPress Sites Affected by Arbitrary File Upload Vulnerability in Forminator Forms — Wordfence
- 40,000 WordPress Sites Affected by Authentication Bypass Vulnerability in User Profile Builder — Wordfence
