CVE-2026-116520 CVSS 7.2 — HIGH wordpress เผยแพร่: 2026-10-31

ช่องโหว่ Stored XSS (Persistent) ใน WordPress Plugin "PPWP – Password Protect Pages" — CVE-2026-116520 (CVSS 7.2)

⚠️ ระดับสูง (CVSS 7.2) — ควรแก้ไขภายใน 48-72 ชั่วโมง

📋 สรุปช่องโหว่

ช่องโหว่ Stored XSS (Persistent) ถูกค้นพบในWordPress Plugin "PPWP – Password Protect Pages" โดยมี CVSS Score 7.2 ระดับ "สูง"

ช่องโหว่ XSS เกิดจากการที่ระบบไม่ได้กรองข้อมูลที่ผู้ใช้ป้อนเข้ามาอย่างเหมาะสม ทำให้ผู้โจมตีสามารถฉีด JavaScript อันตรายเข้าไปในหน้าเว็บได้ เมื่อผู้ใช้รายอื่นเปิดหน้าเว็บนั้น script จะถูกรันในเบราว์เซอร์ของเหยื่อโดยอัตโนมัติ

การโจมตีนี้ไม่จำเป็นต้องล็อกอิน ผู้ดูแลระบบที่ใช้WordPress Plugin "PPWP – Password Protect Pages" และยังไม่ได้อัพเดตควรดำเนินการทันที

💥 ผลกระทบที่อาจเกิดขึ้น

ผู้โจมตีสามารถ:

• ขโมย Session Cookie: ดึง session token ของ admin เพื่อเข้าสู่ระบบโดยไม่ต้องรู้รหัสผ่าน
• Hijack บัญชี Admin: สร้าง admin ใหม่หรือเปลี่ยนรหัสผ่าน
• ฝัง Malware/Phishing: redirect ผู้เข้าชมไปเว็บอันตราย หรือแสดง form ปลอม
• ขโมยข้อมูลในฟอร์ม: ดักข้อมูล email รหัสผ่าน ข้อมูลบัตรเครดิต
• Defacement: เปลี่ยนหน้าตาเว็บไซต์
• Drive-by Download: บังคับดาวน์โหลดไฟล์อันตราย

🖥️ ซอฟต์แวร์และระบบที่ได้รับผลกระทบ

WordPress Plugin: PPWP – Password Protect Pages

ตรวจสอบที่ https://nvd.nist.gov/vuln/detail/CVE-2026-116520

1. เปิด Dashboard > Plugins
2. ค้นหา "PPWP – Password Protect Pages" ดูเวอร์ชัน
3. เปรียบเทียบกับ NVD

🔧 แนวทางการแก้ไขและป้องกัน

  • ขั้นตอนแก้ไข:
  • 1. อัพเดตทันที: อัพเดต "PPWP – Password Protect Pages"เป็นเวอร์ชันล่าสุด
  • 2. ปิด Plugin ชั่วคราว: หากยังไม่มี patch
  • 3. ตรวจสอบ Logs: หา <script>, javascript:, onerror= ใน access log
  • 4. ติดตั้ง WAF: ใช้ Wordfence หรือ Cloudflare WAF
  • 5. Content Security Policy: ตั้ง HTTP header เพื่อจำกัด script
  • 6. ตรวจสอบ User Accounts: ดูว่ามี admin ที่ไม่รู้จักหรือไม่
  • 7. เปลี่ยนรหัสผ่าน: เปลี่ยน admin password ทุกบัญชี
  • 8. ล้าง Cache: ล้าง plugin cache หลังอัพเดต

📄 รายละเอียดต้นฉบับ (ภาษาอังกฤษ)

The PPWP – Password Protect Pages plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'comment / shortcode attribute desc_below_form (and placeholder as the marker-smuggling helper)' parameter in all versions up to, and including, 1.9.26 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This is exploitable by unauthenticated attackers because WordPress's comment_content filter leaves bare shortcode text (containing no HTML tags) untouched, and the comment_whitelist setting auto-approves subsequent comments from a previously approved name and email without administrator intervention.

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