CVE-2026-40348
HighCVSS 7.7Exploitation Probability (EPSS)
Low risk32th percentile - higher than 32% of all known CVEs
Summary
Movary (a self-hosted web app to track and rate watched movies) prior to version 0.71.1 allows an ordinary authenticated user to trigger server-side requests to arbitrary internal targets through POST /settings/jellyfin/server-url-verify. The endpoint accepts a user-controlled URL, appends /system/info/public, and sends a server-side HTTP request with Guzzle without restrictions on internal hosts, loopback addresses, or private network ranges. This enables SSRF and internal network probing, including host discovery, port-state probing, and service fingerprinting.
Risk Assessment
An authenticated user can perform internal network reconnaissance and potentially reach internal administrative services or cloud metadata endpoints. The risk affects internal network security and confidentiality.
Recommendation
Upgrade Movary to version 0.71.1, which fixes the vulnerability. Until then, restrict access to the /settings/jellyfin/server-url-verify endpoint or implement URL validation.
Other vulnerabilities in Movary
See all- CVE-2025-64116Medium
Movary, a web application to track, rate and explore movie watch history, prior to 0.69.0 accepts a redirect parameter without validation on the login page, allowing attackers to redirect authenticated users to arbitrary external sites. This vulnerability is fixed in 0.69.0.
- CVE-2025-64115Medium
Movary, a web application to track, rate and explore movie watch history, up to version 0.68.0 uses the HTTP Referer header value directly for redirects in multiple settings endpoints, allowing a crafted link to cause an open redirect to an attacker-controlled site and facilitate phishing. This vulnerability is fixed in 0.69.0.
Original NVD description (English source)
Movary is a self hosted web app to track and rate a user's watched movies. Prior to version 0.71.1, an ordinary authenticated user can trigger server-side requests to arbitrary internal targets through `POST /settings/jellyfin/server-url-verify`. The endpoint accepts a user-controlled URL, appends `/system/info/public`, and sends a server-side HTTP request with Guzzle. Because there is no restriction on internal hosts, loopback addresses, or private network ranges, this can be abused for SSRF and internal network probing. Any ordinary authenticated user can use this endpoint to make the server connect to arbitrary internal targets and distinguish between different network states. This enables SSRF-based internal reconnaissance, including host discovery, port-state probing, and service fingerprinting. In certain deployments, it may also be usable to reach internal administrative services or cloud metadata endpoints that are not directly accessible from the outside. Version 0.71.1 fixes the issue.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

