/

CVE-2026-95656

Severity:

HIGH RISK

(7.3)

SSRF (CWE-918) in changedetection.io Preview Endpoint Bug

CVE-2026-95656

Deferred

Vulnerability type

Category:

Server-Side Request Forgery

CWE:

CWE-918

Impact:

Unauthorized Server-Side Network Requests

Severity:

HIGH RISK

(7.3)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

A server-side request forgery vulnerability in changedetection.io allows a remote attacker to influence the URL used by the Preview Endpoint.

When the endpoint processes attacker-controlled URLs without adequately restricting destinations, the server may send requests to internal or otherwise unintended services.

Affected context

The vulnerability occurs in the Preview Endpoint implementation, specifically the add_watch_ui_snapshot function in changedetectionio/blueprint/add_watch_ui/__init__.py. It affects deployments where a remotely supplied url value is used to initiate server-side requests without sufficient destination validation or network egress restrictions.

Exploit preconditions

  • Attack surface: The remotely accessible Preview Endpoint
  • Required access: Ability to reach the endpoint and provide or influence the url parameter
  • Trigger point: Processing a preview request through add_watch_ui_snapshot
  • Why exploitation is possible: The server may trust the supplied destination and make a request from its own network context

Why this happens

The underlying issue is insufficient validation and authorization of a user-controlled URL before the application performs a server-side request.

This maps to CWE-918: Server-Side Request Forgery, where an application retrieves attacker-influenced resources from a privileged server-side network position. Insecure destination handling can allow requests to internal services, local interfaces, cloud metadata endpoints, or other restricted locations.

Potential impact

  • An attacker may access services that are not directly reachable from the internet
  • Internal application or infrastructure data could be disclosed
  • Cloud instance metadata or service credentials may be exposed
  • Internal endpoints could receive unintended requests
  • The vulnerable server's network position may be used for reconnaissance or lateral movement

General mitigation guidance

Mitigation generally focuses on treating all externally supplied URLs as untrusted and limiting where the server can connect.

Common defensive patterns include:

  • Allowing requests only to explicitly approved schemes, hosts, ports, and destinations
  • Resolving hostnames and validating resulting IP addresses before connecting
  • Blocking loopback, link-local, private, reserved, and other restricted address ranges
  • Rechecking destinations after redirects and limiting redirect behavior
  • Applying outbound network policies and egress controls at the host or deployment layer
  • Running the application with least-privilege network and service permissions
  • Avoiding exposure of sensitive response bodies or detailed connection errors through preview features

How teams detect issues like this

Organizations can detect SSRF risks through:

  • Static analysis for server-side HTTP clients that consume request parameters without destination validation
  • Code review checks for URL fetches, redirect handling, DNS resolution, and IP-range filtering
  • Runtime monitoring of outbound requests from web application processes
  • Network policies that alert on connections to private, loopback, link-local, or metadata-service addresses
  • Policy enforcement requiring approved destination lists for server-side fetch functionality
  • Automated security review tools that identify user-controlled URL flows and external request sinks

Sources

SourceLink
github.comgithub.com/dgtlmoon/changedetection.io/
github.comgithub.com/dgtlmoon/changedetection.io/commit/71d332d5a0d3da2a0fe89a392413bf4b7d27c84e
github.comgithub.com/dgtlmoon/changedetection.io/releases/tag/0.60.1
github.comgithub.com/herantong/cve/blob/main/changedetection.io_ssrf-preview-endpoint_CWE-918
vuldb.comvuldb.com/cve/CVE-2026-95656
vuldb.comvuldb.com/submit/896586
vuldb.comvuldb.com/vuln/408412
vuldb.comvuldb.com/vuln/408412/cti

Frequently asked

questions

Yes, the vulnerable endpoint can be reached remotely when it is exposed and accepts attacker-controlled URL input. The practical scope depends on authentication, routing, and deployment controls.

An attacker generally needs network access to the Preview Endpoint and the ability to influence its url parameter. Authentication requirements depend on the application's access controls.

Treat the URL as untrusted, enforce a strict allowlist of permitted destinations, validate resolved addresses, control redirects, and apply restrictive outbound network policies.

Review all server-side request features for user-controlled URL flows, enforce centralized URL-validation policies, monitor outbound traffic, and run services with minimal network and application privileges.

Find out what's already
exploitable in your codebase.