---
id: "CVE-2026-62979"
kind: "vulnerability"
aliases: ["CVE-2026-62979"]
title: "jack: error responses leak internal Radarr and Sonarr API keys"
severity: "high"
cvss: 8.4
epss: null
exploited: false
status: "open"
category: "other"
products: []
ecosystems: []
tags: ["cloudflare-access", "jack", "other", "radarr", "self-hosted", "sonarr"]
not_affected_if: ["no-radarr-or-sonarr-connector", "version-0.1.0-or-later"]
published_at: "2026-10-30T21:17:15+00:00"
first_seen_at: "2026-10-30T21:25:54+00:00"
updated_at: "2026-10-30T21:26:39+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-62979", "first_seen_at": "2026-10-30T21:25:54+00:00"}]
---

# jack: error responses leak internal Radarr and Sonarr API keys

jack returns raw error objects over HTTP, and those errors include outbound request headers. An attacker with the shared peer key can read the internal Radarr/Sonarr X-Api-Key and Cloudflare Access secrets, which grants full administrative control of those instances.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed jack version; releases before `0.1.0` are affected.
- Look for `GET /peer/items/:id`, `GET /servers/health` and `GET /torznab/download/:id` routes in your deployment.
- Check whether the Radarr/Sonarr connectors send `X-Api-Key` or `CF-Access-Client-Secret` headers.

## Fix

- jack: upgrade to `0.1.0` or later.

## Timeline

- 2026-10-30T21:25:54+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-62979

## From the sources

jack lets users share media libraries through their Radarr/Sonarr stack, peer-to-peer. Prior to 0.1.0, `middleware/handle-error.ts` serializes raw `FetchError` objects into HTTP responses. `lib/servers/base.ts` attaches outbound request headers on upstream non-success responses and schema-validation failures; the public `extras` field in `lib/errors/FetchError.ts` remains enumerable and is emitted by JSON serialization. These headers include the internal Radarr/Sonarr `X-Api-Key` and custom connector headers such as `CF-Access-Client-Secret`. `lib/redact.ts` redacts logs and spans but not this response path. Any client with the shared peer API key, plus Cloudflare Access credentials if required by the deployment, can force an error without a race or user interaction. `GET /peer/items/:id` and `GET /servers/health` can expose the internal media-server key, while `GET /torznab/download/:id` can expose another peer's key and Cloudflare Access secrets. The /peer/search and /items routes catch these errors and are not affected. Disclosed internal keys grant full administrative control of the corresponding Radarr/Sonarr instance, crossing the intended boundary between friends' shared peer access and private backend credentials. This issue is fixed in version 0.1.0.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
