CVE-2026-57566: Readest: Unauthenticated SSRF / open request proxy in /api/opds/proxy
Readest is a modern, feature-rich ebook reader designed for seamless cross-platform access and an intuitive reading experience. Prior to 0.11.10, the unauthenticated /api/opds/proxy route in apps/readest-app/src/app/api/opds/proxy/route.ts accepted an attacker-controlled URL and fetched it server-side without restricting the scheme, blocking private, loopback, link-local, or metadata hosts, or revalidating destinations during automatic redirect following. The route also accepted caller-controlled outbound headers and Authorization values and reflected the upstream status and response body. A remote attacker could use the service as an open request proxy and, on Node, Docker, or other self-hosted deployments with internal-network access, retrieve cloud metadata or internal-service responses. Cloudflare Workers deployments restrict access to link-local and private destinations, which reduces the internal-network impact there, but the unauthenticated public fetch-and-reflect behavior remains. This issue is fixed in version 0.11.10.
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Readestto a version that resolves this vulnerability.Fixed in 0.11.10
Event History
Frequently Asked Questions
Which deployments face the greatest internal-network risk?
Node, Docker, and other self-hosted deployments that can reach internal networks are most exposed, because an unauthenticated remote attacker can make the server retrieve internal-service or cloud-metadata responses. Cloudflare Workers restrict access to link-local and private destinations, reducing that internal-network impact.
Does exploiting this require an account or user interaction?
No. The affected route is unauthenticated, and the vector is network-accessible with low attack complexity; an attacker can supply a URL for the server to fetch.
What can an attacker control and receive through the endpoint?
The attacker can control the requested URL, including its scheme, and can provide outbound headers and Authorization values. The endpoint reflects the upstream response status and body, allowing it to act as an open request proxy.
Are Cloudflare Workers deployments fully unaffected?
No. Workers restrict link-local and private destinations, but the unauthenticated public fetch-and-reflect behavior remains.
What version fixes the issue?
Upgrade Readest to version 0.11.10 or later. Versions before 0.11.10 are affected.