ช่องโหว่ Stored XSS (Persistent) ใน WordPress Plugin "Graphina – Charts and Graphs For Elementor" — CVE-2026-110291 (CVSS 7.2)
📋 สรุปช่องโหว่
ช่องโหว่ Stored XSS (Persistent) ถูกค้นพบในWordPress Plugin "Graphina – Charts and Graphs For Elementor" โดยมี CVSS Score 7.2 ระดับ "สูง" ซึ่งถือว่ามีความรุนแรงที่ต้องได้รับความสนใจโดยเร็ว
ช่องโหว่ประเภท XSS เกิดจากการที่ระบบไม่ได้กรองหรือทำ sanitize ข้อมูลที่ผู้ใช้ป้อนเข้ามาอย่างเหมาะสม ทำให้ผู้โจมตีสามารถฉีด JavaScript อันตรายเข้าไปในหน้าเว็บได้ เมื่อผู้ใช้รายอื่นเปิดหน้าเว็บนั้น script จะถูกรันในเบราว์เซอร์ของเหยื่อโดยอัตโนมัติ
การโจมตีนี้ไม่จำเป็นต้องล็อกอิน ซึ่งหมายความว่าขอบเขตความเสี่ยงอาจกว้างกว่าที่คิด ผู้ดูแลระบบที่ใช้WordPress Plugin "Graphina – Charts and Graphs For Elementor" และยังไม่ได้อัพเดตควรดำเนินการทันที
💥 ผลกระทบที่อาจเกิดขึ้น
ผู้โจมตีที่ใช้ประโยชน์จากช่องโหว่นี้สำเร็จสามารถทำสิ่งต่อไปนี้ได้:
• ขโมย Session Cookie: ดึง session token ของผู้ดูแลระบบเพื่อเข้าสู่ระบบโดยไม่ต้องรู้รหัสผ่าน
• Hijack บัญชี Admin: หากผู้ดูแลระบบเปิดหน้าที่ถูก inject ผู้โจมตีอาจสร้าง admin ใหม่หรือเปลี่ยนรหัสผ่าน
• ฝัง Malware/Phishing: แทรกโค้ด redirect ผู้เข้าชมไปเว็บอันตราย หรือแสดง form ปลอมขโมยข้อมูลบัตรเครดิต
• ขโมยข้อมูลในฟอร์ม: ดักข้อมูลที่ผู้ใช้กรอก เช่น email รหัสผ่าน ข้อมูลส่วนตัว
• Defacement: เปลี่ยนแปลงหน้าตาเว็บไซต์ ทำลายชื่อเสียงองค์กร
• Drive-by Download: บังคับให้เบราว์เซอร์ดาวน์โหลดไฟล์อันตรายโดยไม่รู้ตัว
🖥️ ซอฟต์แวร์และระบบที่ได้รับผลกระทบ
WordPress Plugin: Graphina – Charts and Graphs For Elementor
ตรวจสอบเวอร์ชันที่ได้รับผลกระทบที่ https://nvd.nist.gov/vuln/detail/CVE-2026-110291
วิธีตรวจสอบว่าตัวเองได้รับผลกระทบ:
1. เปิด WordPress Dashboard > Plugins
2. ค้นหา "Graphina – Charts and Graphs For Elementor" และดูเวอร์ชันปัจจุบัน
3. เปรียบเทียบกับเวอร์ชันที่ได้รับผลกระทบจาก NVD
🔧 แนวทางการแก้ไขและป้องกัน
- ขั้นตอนแก้ไขทันที:
- 1. อัพเดตทันที: เข้า WordPress Dashboard > Plugins > Updates และอัพเดต "Graphina – Charts and Graphs For Elementor"เป็นเวอร์ชันล่าสุด
- 2. หากยังไม่มี patch: ปิดการใช้งาน plugin ชั่วคราวจนกว่าจะมี patch เพื่อป้องกันการโจมตี
- 3. ตรวจสอบ Logs: ดู access log หาคำขอที่มี <script>, javascript:, onerror= หรือ base64 strings ที่น่าสงสัย
- 4. ติดตั้ง WAF: ใช้ Wordfence Security, Cloudflare WAF หรือ ModSecurity เพื่อ block XSS attempts
- 5. เพิ่ม Content Security Policy: ตั้งค่า HTTP header Content-Security-Policy เพื่อจำกัด script ที่รันได้
- 6. ตรวจสอบ User Accounts: ดูว่ามีบัญชี admin ที่ไม่รู้จักถูกสร้างขึ้นหรือไม่
- 7. เปลี่ยนรหัสผ่าน: เปลี่ยน admin password ทุกบัญชีหากสงสัยว่าถูก compromise
- 8. ล้าง Cache: ล้าง plugin cache และ CDN cache หลังอัพเดตเพื่อให้ไฟล์ใหม่มีผล
📄 รายละเอียดต้นฉบับ (ภาษาอังกฤษ)
The Graphina – Charts and Graphs For Elementor plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the 'iq_tree_chart_node_font_family (and any text control serialized into chart_data['settings'])' parameter in all versions up to, and including, 3.1.13 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. Elementor's Utils::kses_post_deep() does not strip the attack payload on save because the payload contains no disallowed HTML tags — only a single quote and an event-handler fragment — allowing the malicious value to survive persistence.