Descripción
Readest es un lector de libros electrónicos moderno y completo, diseñado para ofrecer acceso multiplataforma fluido y una experiencia de lectura intuitiva. En versiones anteriores a 0.11.10, la ruta no autenticada /api/opds/proxy en apps/readest-app/src/app/api/opds/proxy/route.ts aceptaba una URL controlada por el atacante y la obtenía del lado del servidor sin restringir el esquema, sin bloquear hosts privados, de loopback, link-local o de metadatos, y sin volver a validar los destinos al seguir redirecciones automáticas. La ruta también aceptaba encabezados salientes y valores de Authorization controlados por quien realizaba la llamada, y reflejaba el código de estado y el cuerpo de la respuesta del servidor de origen. Un atacante remoto podría usar el servicio como un proxy de solicitudes abierto y, en implementaciones en Node, Docker u otras autoalojadas con acceso a la red interna, obtener metadatos de la nube o respuestas de servicios internos. Las implementaciones en Cloudflare Workers restringen el acceso a destinos link-local y privados, lo que reduce allí el impacto sobre la red interna, pero se mantiene el comportamiento público no autenticado de obtención y reflejo de contenido. Este problema está corregido en la versión 0.11.10.
Qué hacer
Revisa si usas el producto afectado y en qué versión, y aplica la actualización o la mitigación que indique el aviso del fabricante. CISA no ha confirmado que se esté explotando; si eso cambia, esta ficha pasa a «explotada» y te avisamos en el boletín.
Versiones afectadas
- readest Afectadas: < 0.11.10
Según el registro de la vulnerabilidad en CVE.org, tal como lo publicó el fabricante. Confirma tu versión exacta en el aviso del fabricante.
Referencias
- Referencia en github.comgithub.com/readest/readest/security/advisories/GHSA-c7mm-g2j2-98cx
- Referencia en github.comgithub.com/readest/readest/pull/4638
- Referencia en github.comgithub.com/readest/readest/commit/495783d04516d05b2eb10f8f8bad297d436…
- Referencia en github.comgithub.com/readest/readest/releases/tag/v0.11.10
Ver el texto original en inglés (CVE.org)
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.