Impact
Seerr's image proxy constructs cache filenames from the upstream ETag and Content-Type headers without performing proper validation. This flaw permits an attacker who can supply malicious values for these headers—such as a compromised upstream Jellyfin or Emby server, or a man‑in‑the‑middle on an unencrypted media‑server connection—to include traversal sequences. The path handling and file write functions then normalize the filename outside the intended cache directory, allowing the attacker to overwrite critical application files like /app/dist/index.js. After the container restarts, the overwritten code executes under the node user’s privileges, providing remote code execution. The vulnerability represents a classic path traversal combined with untrusted file overwrite (CWE‑22 and CWE‑94).
Affected Systems
Seerr, the open‑source media request and discovery manager maintained by the seerr-team, is affected. All versions prior to v3.4.0 are vulnerable; the product is used with Jellyfin, Plex, and Emby. No other vendors or products are listed.
Risk and Exploitability
The CVSS score of 7.1 classifies the issue as high severity. The EPSS score is not available, and the vulnerability is not listed in CISA KEV. Exploitation requires the ability to supply malicious upstream headers, which is attainable if the attacker controls the media server or can witness plaintext traffic. Once the cache file is overwritten, the attack can only be realized after the Seerr container restarts, thus a successful exploit also needs a container reboot or restart. Under these conditions, the likelihood of exploitation is moderate for environments lacking secure transport or where the media server is compromised.
OpenCVE Enrichment