ข้ามไปยังเนื้อหา
Cybersecurity

ช่องโหว่ Ninja Forms และ WPC Product Bundles ถูกใช้ฝังแอดมินลับในเว็บ WordPress

Patchstack พบการโจมตีจริงผ่านช่องโหว่ XSS ใน Ninja Forms และ WPC Product Bundles ตั้งแต่ 4 ต.ค. 2026 เมื่อแอดมินเปิดดูข้อมูล สคริปต์จะสร้างบัญชีแอดมินที่ซ่อนตัว

โดย กองบรรณาธิการ THAI DATA อ่าน 5 นาที

แชร์FacebookXLINELinkedIn
ภาพหน้าจอรายงาน Four ways back in: the WordPress XSS campaign that hides its own admin account ของ Patchstack เผยแพร่ 6 ตุลาคม 2026
ภาพ: Patchstack (ภาพหน้าจอ)

สรุปประเด็นสำคัญ

  • Patchstack รายงานเมื่อ 6 ตุลาคม 2026 ว่าพบการโจมตีจริงผ่านช่องโหว่ Stored XSS สองรายการ คือ CVE-2026-94504 ใน Ninja Forms (ใช้งานกว่า 500,000 เว็บ) และ CVE-2026-93836 ใน WPC Product Bundles for WooCommerce (กว่า 30,000 เว็บ)
  • การโจมตีครั้งแรกเกิดเมื่อ 4 ตุลาคม 2026 ผ่าน WPC Product Bundles และวันต่อมาผ่าน Ninja Forms ทั้งสองครั้งดึงสคริปต์ตัวเดียวกันจากโดเมน imgcdn1.com ที่จดทะเบียนเมื่อ 1 ตุลาคม
  • เมื่อผู้ดูแลเว็บเปิดดูข้อมูลฟอร์มหรือคำสั่งซื้อที่ถูกฝังสคริปต์ มัลแวร์จะใช้เซสชันของแอดมินติดตั้งปลั๊กอินปลอม WP Smart Thumbnails และเปิด 4 ช่องทางกลับเข้าเว็บ รวมถึงบัญชีแอดมินที่มองไม่เห็นในหน้า Users
  • เวอร์ชันแรกที่แก้คือ Ninja Forms 3.15.4 (21 กันยายน 2026) และ WPC Product Bundles 8.6.7 ณ 8 ตุลาคม รุ่นล่าสุดบน WordPress.org คือ 3.15.5 และ 8.7.4 ตามลำดับ
  • ThaiCERT ออกประกาศเตือนเรื่องนี้เมื่อ 8 ตุลาคม 2026 และย้ำว่าการอัปเดตปลั๊กอินไม่ได้ลบ backdoor ที่ถูกติดตั้งไปแล้ว

Patchstack บริษัทความปลอดภัยด้าน WordPress รายงานเมื่อวันที่ 6 ตุลาคม 2026 ว่าพบการโจมตีจริงผ่านช่องโหว่ Stored XSS ในปลั๊กอิน Ninja Forms และ WPC Product Bundles for WooCommerce ตั้งแต่ 4 ตุลาคม เมื่อผู้ดูแลเว็บเปิดดูข้อมูลที่ถูกฝังสคริปต์ มัลแวร์จะสร้างบัญชีแอดมินที่ซ่อนจากหน้าจอและเปิดทางกลับเข้าเว็บรวม 4 ช่องทาง

ทั้งสองปลั๊กอินมีเวอร์ชันแก้ไขแล้ว โดย Ninja Forms ออกตั้งแต่ 21 กันยายน 2026 แต่การอัปเดตอย่างเดียวไม่ช่วยเว็บที่ถูกเจาะไปแล้ว ThaiCERT ออกประกาศเตือนผู้ดูแลเว็บไซต์ในไทยเรื่องนี้เมื่อ 8 ตุลาคม 2026

ช่องโหว่ Ninja Forms และ WPC Product Bundles ที่ถูกใช้โจมตี

ทั้งสองช่องโหว่เป็นแบบ Stored Cross-Site Scripting ที่ผู้โจมตีไม่ต้องล็อกอิน NVD บันทึกว่าเปิดเผยเมื่อ 22 กันยายน 2026 โดย Wordfence เป็นผู้ออก CVE และให้คะแนน CVSS 3.1 ที่ 7.2 ส่วน Patchstack ประเมินไว้ที่ 7.1

ปลั๊กอิน CVE เวอร์ชันที่มีช่องโหว่ เวอร์ชันแรกที่แก้ จำนวนเว็บที่ใช้งาน
Ninja Forms CVE-2026-94504 3.15.3 ลงไป 3.15.4 (21 ก.ย. 2026) มากกว่า 500,000
WPC Product Bundles for WooCommerce CVE-2026-93836 8.6.6 ลงไป 8.6.7 มากกว่า 30,000

ใน Ninja Forms ผู้โจมตีส่งสคริปต์มากับข้อมูลในช่องข้อความ (textarea) ผ่าน endpoint ปกติของฟอร์ม สคริปต์จะทำงานเมื่อผู้ดูแลเปิดดูข้อมูลนั้นในหน้าแก้ไขแบบเดิม ส่วน WPC Product Bundles ตรวจค่าจำนวนสินค้าเพียงว่าขึ้นต้นด้วยตัวเลข ค่าอย่าง "1" ตามด้วยแท็กสคริปต์จึงถูกเก็บลงข้อมูลคำสั่งซื้อของ WooCommerce

ภาพหน้าจอตาราง Campaign Overview ของ Patchstack ระบุช่องโหว่ CVE-2026-93836 และ CVE-2026-94504 ใน Ninja Forms สถานะถูกโจมตีจริง และพบครั้งแรก 4 ตุลาคม 2026
ตาราง Campaign Overview ในรายงานของ Patchstack ระบุช่องโหว่ CVE-2026-93836 และ CVE-2026-94504 ใน Ninja Forms สถานะ Active exploitation observed และพบการโจมตีครั้งแรก 4 ตุลาคม 2026 ภาพ: Patchstack (ภาพหน้าจอ)

Patchstack ระบุว่าข้อมูลจากผู้พัฒนามีเพียงบันทึกการเปลี่ยนแปลง (changelog) ของปลั๊กอิน โดย changelog ของ Ninja Forms 3.15.4 ระบุว่าเพิ่มการ escape ข้อมูลในหน้าแก้ไขข้อมูลที่ส่งเข้ามา และของ WPC Product Bundles 8.6.7 ระบุว่าแก้ช่องโหว่ที่นักวิจัยจาก Wordfence รายงาน

สคริปต์ทำอะไรเมื่อแอดมินเปิดดูข้อมูล

สคริปต์ x.js ไม่ได้ขโมยคุกกี้ แต่ทำงานในหน้าแอดมินของเว็บนั้นเอง จึงส่งคำขอไปยัง /wp-admin/ ได้ด้วยเซสชันของผู้ดูแลที่ล็อกอินอยู่ ดึงค่า nonce ที่ WordPress ใช้ป้องกัน CSRF แล้วสั่งงานแทนแอดมิน การตั้งคุกกี้แบบ HttpOnly จึงป้องกันไม่ได้

ขั้นตอนหลักคือติดตั้งปลั๊กอินปลอมชื่อ "WP Smart Thumbnails" 1.2.4 ของ "MediaPress Labs" ผ่านตัวติดตั้งปลั๊กอินของ WordPress แล้วสร้างบัญชีแอดมินใหม่ Patchstack สรุปว่าการทำงานสำเร็จหนึ่งครั้งทิ้งช่องทางกลับเข้าเว็บไว้ 4 ทาง

  • บัญชีแอดมินที่มองเห็นได้ สร้างผ่านหน้า user-new.php ด้วยรหัสผ่านที่เซิร์ฟเวอร์ของผู้โจมตีส่งมา
  • บัญชีแอดมินที่ซ่อนตัว ซ่อนจากหน้า Users ด้วย must-use plugin
  • ลิงก์ล็อกอินลับ ในรูป /wp-login.php?_wplogin=<token> ซึ่งล็อกอินในนามแอดมินคนแรกของเว็บ
  • ตัวจัดการไฟล์ที่ไม่ต้องยืนยันตัวตน ซ่อนอยู่ในไฟล์หลักของปลั๊กอินปลอม

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

ไทม์ไลน์การโจมตีและโครงสร้างของผู้โจมตี

ทุกขั้นของแคมเปญใช้โดเมน imgcdn1.com ซึ่งจดทะเบียนเมื่อ 1 ตุลาคม 2026 หรือประมาณสิบวันหลังช่องโหว่ทั้งสองถูกเปิดเผย Patchstack พบคำขอแรกเมื่อ 4 ตุลาคม 2026 เวลา 10:39 UTC ผ่าน WPC Product Bundles และพบสคริปต์ตัวเดียวกันผ่าน Ninja Forms ในวันที่ 5 ตุลาคม

ภาพหน้าจอตารางการโจมตีของ Patchstack: 4 ตุลาคม 2026 ผ่าน WPC Product Bundles และ 5 ตุลาคม 2026 ผ่าน Ninja Forms พร้อม IP ต้นทาง
ตาราง What We're Seeing ของ Patchstack แสดงการโจมตีผ่าน CVE-2026-93836 เมื่อ 4 ตุลาคม และผ่าน Ninja Forms CVE-2026-94504 เมื่อ 5 ตุลาคม 2026 พร้อม IP ต้นทางและที่อยู่สคริปต์ ภาพ: Patchstack (ภาพหน้าจอ)

IP ต้นทาง 4 จาก 5 รายการเป็น Tor exit node Patchstack จึงเตือนว่าการบล็อก IP เพียงอย่างเดียวไม่ใช่การป้องกันที่ยั่งยืน ณ วันที่เผยแพร่รายงาน ปริมาณการโจมตีที่เห็นยังมีจำกัด แต่ Patchstack ย้ำว่าตัวเลขทั้งสองไม่ใช่เพดาน เพราะขั้นหลังเจาะสำเร็จไม่ผูกกับปลั๊กอินใด ช่องโหว่ Stored XSS ตัวไหนที่ทำให้สคริปต์ไปทำงานต่อหน้าแอดมินได้ก็ถูกนำมาใช้ได้ทั้งหมด

ภาพสรุปแคมเปญโจมตี Ninja Forms: เปิดเผยช่องโหว่ 22 กันยายน จดโดเมน imgcdn1.com 1 ตุลาคม พบการโจมตีจริง 4–5 ตุลาคม 2026 และทิ้งทางกลับเข้าเว็บ 4 ช่องทาง
สรุปแคมเปญ: เปิดเผยช่องโหว่ 22 กันยายน จดโดเมน 1 ตุลาคม เริ่มโจมตี 4–5 ตุลาคม 2026 และทิ้งทางกลับเข้าเว็บ 4 ช่องทาง ภาพ: THAI DATA (ข้อมูล: Patchstack)

ทำไมเรื่องนี้สำคัญ

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

Patchstack ชี้ว่ากลุ่มนี้สะสมช่องโหว่ Stored XSS จากหลายปลั๊กอินมาใช้กับมัลแวร์ชุดเดียว ช่วงเวลาระหว่างการเปิดเผยช่องโหว่กับการโจมตีครั้งแรกก็สั้นเพียง 12 วัน เว็บที่อัปเดตปลั๊กอินเป็นรอบรายเดือนจึงมีโอกาสเปิดช่องไว้ทั้งรอบ ทั้งสองช่องโหว่ยังไม่อยู่ในรายการ KEV ของ CISA ฉบับวันที่ 4 ตุลาคม 2026 องค์กรที่จัดลำดับแพตช์จาก KEV อย่างเดียวจึงอาจมองข้ามเรื่องนี้

ภาพหน้าจอหน้าปลั๊กอิน Ninja Forms บน WordPress.org แสดงเวอร์ชัน 3.15.5 และการติดตั้งที่ใช้งานมากกว่า 500,000
หน้าปลั๊กอิน Ninja Forms บน WordPress.org ระบุเวอร์ชัน 3.15.5 และจำนวนการติดตั้งที่ใช้งานมากกว่า 500,000 ภาพ: WordPress.org (ภาพหน้าจอ)

สิ่งที่องค์กรไทยควรทำ

  1. อัปเดตปลั๊กอินเป็นรุ่นล่าสุด เว็บที่ใช้ Ninja Forms ควรขึ้นรุ่น 3.15.5 ซึ่งแก้ XSS อีกจุดในช่อง Paragraph Text ด้วย ร้านค้า WooCommerce ที่ใช้ WPC Product Bundles ควรขึ้นรุ่น 8.7.4
  2. ค้นหา log ย้อนหลัง หาคำว่า imgcdn1.com, /fz/x.js และ /fz/c.php ใน log ของเว็บเซิร์ฟเวอร์ และหาคำขอที่มีพารามิเตอร์ _wplogin ไปยัง wp-login.php
  3. ตรวจแอดมินจากฐานข้อมูลโดยตรง เทียบรายชื่อผู้ใช้สิทธิ์ administrator ในฐานข้อมูลกับหน้า Users และตรวจโฟลเดอร์ wp-content/plugins/wp-smart-thumbnails/ กับ wp-content/mu-plugins/ โดยดูจากเนื้อหาไฟล์ ไม่ใช่วันที่แก้ไข
  4. ถ้าพบร่องรอย ให้ถือว่าเว็บถูกเจาะ ลบบัญชีและปลั๊กอินแปลกปลอม ลบ option fz_emer_done_v1 และ fz_emer_login_tokens เปลี่ยนรหัสผ่านแอดมินทุกคนรวมถึงแอดมินคนแรกของเว็บ และเปลี่ยน authentication salt ของ WordPress
  5. ลดโอกาสที่สคริปต์จะได้ทำงาน จำกัดจำนวนบัญชีแอดมิน ให้คนที่แค่ดูข้อมูลฟอร์มหรือคำสั่งซื้อใช้บัญชีที่ไม่มีสิทธิ์ติดตั้งปลั๊กอินหรือสร้างผู้ใช้ และตั้งให้ปลั๊กอินอัปเดตอัตโนมัติสำหรับปลั๊กอินที่รับข้อมูลจากผู้ใช้ภายนอก ดูข่าวช่องโหว่อื่นได้ที่หมวดความปลอดภัย

คำถามที่พบบ่อย

ช่องโหว่ Ninja Forms CVE-2026-94504 คืออะไร?

เป็นช่องโหว่ Stored Cross-Site Scripting ใน Ninja Forms เวอร์ชัน 3.15.3 ลงไป ผู้โจมตีที่ไม่ต้องล็อกอินส่งสคริปต์มากับข้อมูลในช่องข้อความของฟอร์ม เมื่อผู้ดูแลเปิดดูข้อมูลที่ส่งเข้ามาในหน้าแก้ไขแบบเดิม สคริปต์จะทำงานในหน้าแอดมินของ WordPress NVD ให้คะแนน CVSS 3.1 ที่ 7.2

ต้องอัปเดต Ninja Forms และ WPC Product Bundles เป็นเวอร์ชันใด?

Ninja Forms ต้องเป็น 3.15.4 ขึ้นไป และ WPC Product Bundles for WooCommerce ต้องเป็น 8.6.7 ขึ้นไป ควรอัปเดตเป็นรุ่นล่าสุด ซึ่ง ณ 8 ตุลาคม 2026 คือ Ninja Forms 3.15.5 ที่แก้ช่องโหว่ XSS อีกจุดในช่อง Paragraph Text และ WPC Product Bundles 8.7.4

อัปเดตปลั๊กอินแล้วเว็บปลอดภัยหรือยัง?

ยังไม่พอ หากสคริปต์เคยทำงานในเบราว์เซอร์ของแอดมินแล้ว ผู้โจมตีจะเหลือช่องทางกลับเข้าเว็บที่อยู่นอกปลั๊กอินที่มีช่องโหว่ ทั้งบัญชีแอดมินที่ซ่อนตัว ลิงก์ล็อกอินลับ และตัวจัดการไฟล์ ต้องตรวจบัญชีในฐานข้อมูล โฟลเดอร์ mu-plugins และตาราง options แล้วเปลี่ยนรหัสผ่านและ salt ทั้งหมด

ตรวจอย่างไรว่าเว็บ WordPress ถูกฝังแอดมินที่ซ่อนอยู่?

Patchstack แนะนำให้ดึงรายชื่อผู้ใช้ที่มีสิทธิ์ administrator จากตาราง wp_users และ wp_usermeta ในฐานข้อมูลโดยตรง แล้วเทียบกับหน้า Users ใน wp-admin บัญชีที่มีในฐานข้อมูลแต่ไม่แสดงในหน้าจอถูกซ่อนด้วย must-use plugin ชื่อบัญชีอย่าง support, updater หรือ maintenance เป็นสัญญาณที่ควรตรวจ

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

  1. Four ways back in: the WordPress XSS campaign that hides its own admin account — Patchstack
  2. CVE-2026-94504 Detail — NIST NVD
  3. CVE-2026-93836 Detail — NIST NVD
  4. Ninja Forms – Contact Form Builder with Calculators, Quizzes, Signatures & AI Form Builder — WordPress.org
  5. WPC Product Bundles for WooCommerce — WordPress.org
  6. ช่องโหว่ XSS ใน Ninja Forms และ WPC Product Bundles ถูกใช้โจมตีเว็บไซต์ WordPress — ThaiCERT (สกมช.)
แชร์FacebookXLINELinkedIn

พบข้อมูลคลาดเคลื่อน? แจ้งกองบรรณาธิการ