{"id":"CVE-2026-57566","published":"2026-11-04T22:18:06.850","lastModified":"2026-11-04T22:18:06.850","description":"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.","cvssScore":9.3,"cvssSeverity":"CRITICAL","cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:N","cwes":["CWE-918"],"vendors":[],"products":[],"references":[{"url":"https://github.com/readest/readest/commit/495783d04516d05b2eb10f8f8bad297d436b36de","tags":[]},{"url":"https://github.com/readest/readest/pull/4638","tags":[]},{"url":"https://github.com/readest/readest/releases/tag/v0.11.10","tags":[]},{"url":"https://github.com/readest/readest/security/advisories/GHSA-c7mm-g2j2-98cx","tags":[]}],"exploitRefs":[{"url":"https://github.com/readest/readest/commit/495783d04516d05b2eb10f8f8bad297d436b36de","tags":[]},{"url":"https://github.com/readest/readest/pull/4638","tags":[]},{"url":"https://github.com/readest/readest/releases/tag/v0.11.10","tags":[]},{"url":"https://github.com/readest/readest/security/advisories/GHSA-c7mm-g2j2-98cx","tags":[]}],"hasPoc":true,"ai":{"summary":"The /api/opds/proxy endpoint in Readest before 0.11.10 allows unauthenticated server-side request forgery (SSRF) by accepting arbitrary URLs without scheme or host validation, enabling attackers to access internal services or cloud metadata.","exploitability":"Exploitation is trivial for remote attackers due to lack of authentication and minimal input validation; no special privileges or user interaction required.","blast_radius":"On self-hosted deployments with internal network access (e.g., Docker, Node), attackers could retrieve sensitive internal data such as cloud metadata or responses from internal services; Cloudflare Workers deployments are partially mitigated due to built-in restrictions on private addresses but remain vulnerable to open proxy abuse.","remediation":"Upgrade to Readest version 0.11.10 or later, which fixes the SSRF vulnerability by implementing proper URL scheme and host validation, blocking internal/metadata endpoints, and revalidating redirects.","detection":"Defenders should monitor for anomalous outbound HTTP requests from the application server to internal IP ranges (e.g., 169.254.169.254, 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), loopback addresses (127.0.0.0/8), or link-local metadata endpoints in application or reverse-proxy logs.","tags":["ssrf","unauthenticated","open-proxy","cloud-metadata","nodejs"],"model":"garnet-coder","analyzedAt":"2026-11-05T09:48:05.766Z"}}