CVE-2026-29039 json
changedetection.io: XPath - Arbitrary File Read via unparsed-text()
published 2026-03-04 8 mo ago modified 2026-07-13 3 mo 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
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- total
- Assessed
- 8 mo ago
Exploit prediction
0.54% chance of exploitation in the next 30 days, higher than 45% of all scored CVEs (FIRST EPSS, 2026-11-08).
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 Vulns 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.