<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Changedetection.io — CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/tags/changedetection.io/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata — refreshed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Tue, 30 Jan 2024 12:00:00 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/tags/changedetection.io/feed.xml" rel="self" type="application/rss+xml"/><item><title>changedetection.io XXE Vulnerability</title><link>https://feed.craftedsignal.io/briefs/2024-01-changedetectionio-xxe/</link><pubDate>Tue, 30 Jan 2024 12:00:00 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2024-01-changedetectionio-xxe/</guid><description>A vulnerability in changedetection.io versions 0.54.9 and earlier allows a remote attacker to perform XML External Entity (XXE) attacks, potentially exposing sensitive local files.</description><content:encoded><![CDATA[<p>An XML External Entity (XXE) vulnerability exists in changedetection.io version 0.54.9 and earlier. The vulnerability resides within the <code>xpath_filter()</code> function in <code>changedetectionio/html_tools.py:287</code>. This function creates an XML parser without disabling external entity resolution, external DTD loading, or network-backed entity lookup. An attacker can exploit this by controlling a watched XML/RSS response body and using an XPath include filter. Successful exploitation allows the attacker to read arbitrary local files from the system running changedetection.io, potentially leading to information disclosure. This issue was reported on May 4, 2026 (GHSA-v7cp-2cx9-x793) and assigned CVE-2026-41895.</p>
<h2 id="attack-chain">Attack Chain</h2>
<ol>
<li>Attacker identifies a changedetection.io instance monitoring an XML/RSS feed.</li>
<li>Attacker crafts a malicious XML/RSS response containing an external entity declaration referencing a local file (e.g., <code>/etc/passwd</code>).</li>
<li>Attacker ensures the watched URL returns the malicious XML/RSS content.</li>
<li>The changedetection.io instance fetches the XML/RSS content from the monitored URL.</li>
<li>The application&rsquo;s stream detection identifies the content as XML/RSS.</li>
<li>The XPath include filter is triggered, invoking the vulnerable <code>xpath_filter()</code> function.</li>
<li><code>etree.fromstring()</code> parses the untrusted XML bytes, resolving the external entity and reading the referenced local file.</li>
<li>The contents of the local file are exposed in extracted watch output, diff history, or downstream notification channels.</li>
</ol>
<h2 id="impact">Impact</h2>
<p>Successful exploitation of this XXE vulnerability (CVE-2026-41895) can lead to the disclosure of sensitive local files on the server running changedetection.io. The impact includes potential exposure of configuration files, credentials, or other sensitive data, which could be leveraged for further attacks or unauthorized access. While the number of affected installations is unknown, any instance of changedetection.io version 0.54.9 or earlier that monitors attacker-controlled XML/RSS feeds using XPath filters is potentially vulnerable.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade changedetection.io to a version beyond 0.54.9 to remediate the vulnerability.</li>
<li>Apply the remediation steps suggested by the original report: Harden XML parser construction with <code>resolve_entities=False</code>, <code>load_dtd=False</code>, and <code>no_network=True</code>.</li>
<li>Implement the Sigma rule <code>Detect Changedetection.io XXE Vulnerability Attempt</code> to detect potential XXE attacks against changedetection.io instances by monitoring for suspicious XML parsing events.</li>
<li>Enable webserver logging to activate the rule above (logsource: category: webserver, product: linux).</li>
</ul>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category><category>XXE</category><category>vulnerability</category><category>changedetection.io</category></item></channel></rss>