XXE (XML External Entity) in changedetection.io (CVE-2026-41895)
Summary
Vulnerability in changedetection.io (CVE-2026-41895). Confidential information can be exposed externally. Exploitable via XXE.
Original description
The description as published by the source.
changedetection.io_XXE_01 Vulnerability Report: We discovered a XXE vulnerability in the changedetection.io project
While analyzing the code logic, it was determined that an area may lead to unintended behavior under specific conditions. With the project's security in mind, see the analysis results to discern whether this may indicate a potential security risk.
Overview
- SOURCE_VERSION:
0.54.9 (9f3a9fdc18bba404244801e5df8109e213ce9ff4) - Vulnerability type:
XXE - Finding title:
XML XPath helpers parse untrusted XML with entity resolution left to lxml defaults - Affected location:
changedetectionio/html_tools.py:287
Root Cause
xpath_filter() switches to XML mode for XML/RSS content and creates etree.XMLParser(strip_cdata=False) without explicitly disabling external entity resolution, external DTD loading, or network-backed entity lookup. The helper then parses untrusted XML bytes directly with etree.fromstring(...).
Source-to-Sink Chain
- Untrusted XML/RSS response content is fetched from monitored URLs.
- Stream detection marks the content as XML/RSS and the include-filter path invokes
xpath_filter(..., is_xml=True). xpath_filter()builds the default XML parser and callsetree.fromstring(...)atchangedetectionio/html_tools.py:287.- External entity declarations in attacker XML can be expanded by parser-default behavior in affected runtime combinations.
Exploitation Preconditions
- Attacker controls the watched XML/RSS response…
Source: GitHub Security Advisories (Global) NVD GitHub Advisory
Auto-generated summary
Assembled by SecPulse from the source data (CVSS, CWE, affected versions) using templates — no AI involved. Check the original description and references below for exact details.
A vulnerability tracked as CVE-2026-41895 has been found in changedetection.io.
Attackers can target a specific entry point like XXE over the network to misuse the product.
Confidential information can be exposed externally. CVSS score: 7.5/10.
What to do: apply the vendor's official patched release.
If unsure, ask your IT team or search "changedetection.io CVE-2026-41895" on the vendor's site.
CVE-2026-41895 (changedetection.io) — CWE-611 / CVSS v3 7.5
Attack vector: remote (network-reachable) / unauthenticated / no user interaction
Attack surface: XXE / DOCTYPE
Plan: 1) Audit SBOM/dependencies, 2) Stage→prod upgrade, 3) Add WAF/proxy monitoring on affected endpoints, 4) Hunt IOCs in logs.
Refs: see the GHSA / vendor advisory / patched release linked on this page.
A vulnerability (CWE-611) exists in changedetection.io. Attackers reach the vulnerable code path via XXE without authentication.
Check the vendor advisory for the affected versions of changedetection.io. Attack surface: XXE / DOCTYPE.
Severity: High (CVSS 7.5/10). Confidential information can be exposed externally.
Update to the patched release per vendor advisory.
Until the patch is applied: disable the affected feature, apply WAF rules, or restrict access via network ACLs.
Search webserver/proxy logs for unusual request patterns matching this CVE's known IOCs. Run grep -r 'changedetection.io' . against your dependency files (package-lock.json, requirements.txt, go.sum) to find affected services.
Response actions
Concrete steps and command examples for SOC/SRE teams to execute in order
-
1Identify exposure identify
grep -r 'changedetection.io' . | grep -v node_modulesリポジトリと本番環境の依存ファイル (package-lock.json / requirements.txt / go.sum / Gemfile.lock 等) で
changedetection.ioを grep し、稼働しているサービス・バージョンを把握する。 -
2Post-deployment verification verify
Confirm patched version is live in productionパッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番ではアクセスログ・WAF でアラート再発が無いか継続監視。
Affected packages
References
- advisory nvd.nist.gov
- package github.com
- web github.com
- web github.com
- web github.com