CVE-2026-73291
This CVE reveals a supply-chain attack model that's easier to miss than a direct Seerr exploit. The vulnerability lives in ImageProxy: it uses ETag and Content-Type headers from your upstream Jellyfin or Emby to construct cache filenames, blindly trusting that metadata the same way developers trust internal services. You don't need to attack Seerr directly — you compromise the server it already trusts. In homelabs where one user runs both services, this feels theoretical. In managed Jellyfin deployments, shared Emby servers, or corporate environments where media servers are separate team responsibilities, a single upstream compromise detonates laterally across every Seerr instance querying it. That's the real blast radius: one compromised media server potentially reaches dozens or hundreds of downstream clients. The plaintext-HTTP clause matters more than it appears. Many homelab deployments use HTTP for media-server communication because certificates are friction. An attacker positioned on the same network segment — or a compromised switch/router — can inject malicious headers into responses from a legitimate media server, turning Seerr into an unwitting file-write vector without ever compromising either service directly. The container-restart requirement often gets dismissed as exploit complexity, but this is misleading. Production containers restart constantly: OOM kills, health check failures, rolling deployments. The window between file write and restart may be minutes. More importantly, examine whether the overwritten `/app/dist/index.js` actually requires a restart or whether lazy module loading could trigger it on the next API request — this distinction changes the severity significantly. What you should do now: First, verify whether your media-server connection uses HTTP. If it does, you're exposed to the MITM vector. Second, audit whether the 3.4.0 patch removed upstream-header usage entirely from cache filename construction or merely added allowlist filtering — the latter is historically brittle and often leaves follow-on CVE paths. Third, treat your media server's security posture as directly proportional to your Seerr exposure: if Jellyfin or Emby is compromised, Seerr is compromised.
Reviewed through automated stages and approved by a human before publication.