CVE-2026-25527

5.3 MEDIUM

📋 TL;DR

This vulnerability in changedetection.io allows unauthenticated attackers to read application source files through a directory traversal flaw in the static file serving route. Anyone running changedetection.io versions before 0.53.2 is affected. The issue enables local file read of sensitive application files.

💻 Affected Systems

Products:
  • changedetection.io
Versions: All versions prior to 0.53.2
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Affects all deployments of changedetection.io before the patched version.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could read sensitive configuration files, source code containing secrets, or other critical files, potentially leading to further exploitation or data exposure.

🟠

Likely Case

Unauthenticated file read of application source code, which could reveal implementation details, configuration, or potentially sensitive information.

🟢

If Mitigated

Limited impact with proper network segmentation and access controls, though source code exposure still poses some risk.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

The vulnerability is simple to exploit via crafted HTTP requests to the static file route.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 0.53.2

Vendor Advisory: https://github.com/dgtlmoon/changedetection.io/security/advisories/GHSA-9jj8-v89v-xjvw

Restart Required: Yes

Instructions:

1. Update changedetection.io to version 0.53.2 or later. 2. Restart the application. 3. Verify the fix by checking the version.

🔧 Temporary Workarounds

Network Access Restriction

linux

Restrict network access to the changedetection.io instance to trusted IPs only.

Use firewall rules to limit access: iptables -A INPUT -p tcp --dport <PORT> -s <TRUSTED_IP> -j ACCEPT
iptables -A INPUT -p tcp --dport <PORT> -j DROP

🧯 If You Can't Patch

  • Deploy a reverse proxy or WAF with path validation to block directory traversal attempts.
  • Isolate the changedetection.io instance in a restricted network segment with no internet exposure.

🔍 How to Verify

Check if Vulnerable:

Check if version is below 0.53.2. Attempt to access /static/../flask_app.py and see if source code is returned.

Check Version:

Check the application interface or deployment logs for version information.

Verify Fix Applied:

After updating to 0.53.2+, attempt the same request; it should return an error or not expose files.

📡 Detection & Monitoring

Log Indicators:

  • HTTP requests to /static/../ paths
  • Unusual file access patterns in application logs

Network Indicators:

  • HTTP requests with directory traversal sequences in the URL path

SIEM Query:

web.url:*\/static\/\.\.\/* OR web.url:*%2e%2e%2f*

🔗 References

📤 Share & Export