Summary
CVE-2026-82638 is a Server-Side Request Forgery (SSRF) vulnerability in jina-ai’s Reader (the open-source engine behind r.jina.ai, which converts URLs into LLM-friendly content). Self-hosted deployments disable the built-in private-address guard, allowing unauthenticated remote attackers to force the service to fetch internal or cloud-metadata resources by supplying publicly resolvable hostnames that resolve to private IP addresses. The flaw is rated HIGH severity (CVSS 8.7).
Technical details
- Root cause: In
src/services/misc.ts, theprivateIpNotAcceptableguard is only enabled when bothNODE_ENVcontains "prod" and theGCLOUD_PROJECTenvironment variable is set. Self-hosted/Docker deployments typically lackGCLOUD_PROJECT, so the guard never activates. - Trigger condition: When the guard is disabled, DNS resolution of attacker-supplied hostnames is not checked against private/link-local/unique-local IP ranges before the service fetches the target.
- Attack vector: An unauthenticated attacker submits a URL using a publicly resolvable hostname (e.g., via wildcard DNS services like nip.io) that resolves to a private IP, such as a cloud metadata endpoint or internal service address.
- Impact: Successful exploitation can expose cloud instance metadata (including IAM credentials on AWS/GCP/Azure), and allows reconnaissance or content exfiltration from internal services such as databases, Kubernetes API servers, and admin interfaces reachable from the Reader host. No integrity or availability impact is reported; the primary impact is confidentiality.
Affected software
- jina-ai Reader (GitHub:
jina-ai/reader), self-hosted deployments, from commit45d1682db02f0c50b680ad350855da4e38ab2122through commit1574bfd380d249c86c82db4dace0d9c8fe17e2b1. - Deployments running outside Google Cloud (i.e., without
GCLOUD_PROJECTset) are affected; the guard is only active in production Google Cloud deployments.
Severity
- CVSS v3.1: 7.5 (HIGH) —
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - CVSS v4.0: 8.7 (HIGH) —
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N - CWE-918: Server-Side Request Forgery (SSRF)
Mitigation and recommended actions
- Immediate: No official patched release has been published as of this writing. A fix (rejecting hostnames that resolve to non-public IPs) has been proposed in an open, unmerged pull request against the
jina-ai/readerrepository. Track this pull request and upgrade as soon as a fixed release is available. - Workarounds/network mitigations:
- Do not rely on
NODE_ENV/GCLOUD_PROJECTto enable SSRF protection in self-hosted deployments; explicitly enforce private-IP/DNS-resolution filtering at the application or proxy layer regardless of environment. - Restrict egress network access from the Reader service/container so it cannot reach cloud metadata endpoints (e.g., block
169.254.169.254) or internal RFC1918/link-local/unique-local address ranges. - Run the Reader service with minimal or no cloud IAM privileges attached, to limit the blast radius if metadata is exposed.
- Place the service behind an authenticating proxy if it is not intended to be publicly reachable.
- Do not rely on

