Vulnerability · Published Nov 4, 2026 · Assigned by GitHub_M
CVE-2026-57562Readest: Subscription/entitlement hijack: /api/stripe/check binds any paid Checkout Session to the caller
Medium 6.5
In plain English
A medium-severity authorization bypass via user-controlled key in readest from readest. Proof-of-concept exploit code is public. The chance it is exploited in the next 30 days is estimated at 0.4% (higher than 37% of all known vulnerabilities).
Official 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, 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.
Affected products (as reported)
Weakness: CWE-639 · Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N
References
- https://github.com/readest/readest/security/advisories/GHSA-pv88-3727-j7v8 x_refsource_CONFIRM
- https://github.com/readest/readest/pull/4638 x_refsource_MISC
- https://github.com/readest/readest/commit/495783d04516d05b2eb10f8f8bad297d436b36de x_refsource_MISC
- https://github.com/readest/readest/releases/tag/v0.11.10 x_refsource_MISC