CVE-2026-29039 json
changedetection.io: XPath - Arbitrary File Read via unparsed-text()
published 8mo ago modified 3mo ago also EUVD-2026-10012 , GHSA-6fmw-82m7-jq6p , PYSEC-2026-2128
- cvss
- 7.5
- version 3.1, NVD
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.5%
- EPSS 0.5% chance of exploitation in 30 days, percentile 45%
- public exploits
- 0
- none known
Summary
changedetection.io is a free open source web page change detection tool. Prior to version 0.54.4, the changedetection.io application allows users to specify XPath expressions as content filters via the include_filters field. These XPath expressions are processed using the elementpath library which implements XPath 3.0/3.1 specification. XPath 3.0 includes the unparsed-text() function which can read arbitrary files from the filesystem. The application does not validate or sanitize XPath expressions to block dangerous functions, allowing an attacker to read any file accessible to the application process. This issue has been patched in version 0.54.4.
Patch / fix
- pypi changedetection-io 0.54.4
- changedetection changedetection 0.54.4
- webtechnologies changedetection 0.54.4
Is CVE-2026-29039 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- total
- Assessed
- 8mo ago
Exploit prediction
0.54% chance of exploitation in the next 30 days, higher than 45% of all scored CVEs (FIRST EPSS, 2026-11-09).
Exploits and checks
- github.com https://github.com/dgtlmoon/changedetection.io/security/advisories/GHSA-6fmw-82m7-jq6p referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 4.0 | 8.8 | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:P |
| CNA | 4.0 | 8.8 | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X |
| NVD | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N |
| OSV | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | changedetection-io | <0.54.4 |
0.54.4 |
Affected products
- dgtlmoon changedetection.io
Classification
- Weakness
-
- CWE-94 Improper Control of Generation of Code
References
-
github.com
/dgtlmoon/changedetection.io/commit/417d57e5749441e4be9acc4010369bded805d66f
web, patch
-
github.com
/dgtlmoon/changedetection.io/security/advisories/GHSA-6fmw-82m7-jq6p
web, exploit, vendor-advisory, evidence
-
github.com
/dgtlmoon/changedetection.io/releases/tag/0.54.4
web, product, release-notes, advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-29039
advisory
-
github.com
/dgtlmoon/changedetection.io
package
Sources
- CVE List CVE-2026-29039
- GitHub Advisory GHSA-6fmw-82m7-jq6p
- NVD CVE-2026-29039
- OSV PYSEC-2026-2128
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.
CPEs and fixed versions use Anchore's correction of NVD's data: Added CPE configurations because not yet analyzed by NVD.