CVE-2026-57562 Secuestro de suscripciones en /api/stripe/check de Readest
POST /api/stripe/check aceptaba un sessionId controlado por el cliente y otorgaba el plan pago al llamador autenticado sin verificar session.metadata.userId. Cualquier usuario gratuito autenticado con el identificador de una Checkout Session paga podía reutilizarlo para actualizar otras cuentas sin pagar. Corregido en 0.11.10.
CVSS 3.1
- Probabilidad de explotación · EPSS del 09/110,4 % · percentil 37
- Explotada activamenteNo confirmada
- Exploit públicoNo conocido
Afectados
readest
< 0.11.10
Qué hacer
- Verificá si usás readest y en qué versión.
- Actualizá a la versión corregida que indique el fabricante en su aviso o aplicá su mitigación.
- Revisá registros y accesos de los sistemas expuestos para descartar un uso previo.
Calculadora CVSS
CVSS 3.1 · 6.5 MEDIA
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
- Vector de ataqueRed
- Complejidad del ataqueBaja
- Privilegios requeridosBajos
- Interacción del usuarioNinguna
- AlcanceSin cambio
- ConfidencialidadNinguna
- IntegridadAlta
- DisponibilidadNinguna
Descripción original
Readest is a modern, feature-rich ebook reader designed for seamless cross-platform access and an intuitive reading experience. Prior to 0.11.10, POST /api/stripe/check in apps/readest-app/src/app/api/stripe/check/route.ts accepted a client-controlled sessionId, retrieved the corresponding Stripe Checkout Session, and granted the paid plan to the authenticated caller without verifying session.metadata.userId. The createOrUpdateSubscription path then updated the plans row keyed by the caller's user identifier rather than the Checkout Session owner. Any authenticated free user with a paid active Checkout Session identifier, including one from the user's own single legitimate purchase, could replay that identifier to upgrade additional accounts without payment. This issue is fixed in version 0.11.10.
Referencias (4)
Resumen traducido automáticamente de la descripción original. Fuente: Nureq Monitor. Cómo funciona.