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 apps/readest-app/src/pages/api/storage/upload.ts route constructed an object key from the authenticated user's identifier and a client-controlled fileName without rejecting path separators or parent-directory traversal. In the R2 backend, apps/readest-app/src/utils/r2.ts placed that key into a new Request URL before signing it, and URL normalization collapsed parent-directory components so the resulting presigned PUT could escape the caller's namespace. An authenticated attacker who knew a target user identifier and book hash could overwrite or poison that user's stored book object and corrupt the associated file_key metadata; the exact cross-tenant escape was verified for the R2 backend. This issue is fixed in version 0.11.10.
Published: 2026-11-04
Score: 6.5 Medium
EPSS: n/a
KEV: No
Impact: Data tampering / cross‑tenant object overwrite
Action: Upgrade immediately
AI Analysis

Impact

Readest is a modern ebook reader that handles user uploads via its "/api/storage/upload" endpoint. Before version 0.11.10, the supplied fileName was concatenated with the authenticated user’s identifier to produce an object key for storage. The code did not reject path separators or parent‑directory traversal characters, allowing an attacker who knows another tenant’s user ID to craft a path that escapes their namespace. By signing a presigned PUT for that key, the attacker can overwrite or corrupt the target user’s book object and associated metadata. This flaw is a classic path traversal that allows arbitrary object overwrite across tenants, leading to data integrity loss and potential service disruption for victims.

Affected Systems

The affected product is Readest (readest:readest). All deploys running any version prior to 0.11.10 are susceptible to this cross‑tenant write vulnerability. The issue was fixed in the 0.11.10 release.

Risk and Exploitability

The CVSS score for this vulnerability is 6.5. EPSS data is not available, and the weakness is not listed in CISA’s KEV catalog. Attack requires an authenticated session with knowledge of another tenant’s user ID and book hash. Because the path traversal occurs during construction of a presigned PUT URL, the attacker can execute the exploit over the network without additional privileges. Current data suggests the risk is moderate, but the lack of a published exploit and absence from KEV indicates it may not be widely targeted yet.

Generated by OpenCVE AI on November 4, 2026 at 23:37 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Readest to version 0.11.10 or later
  • Validate and sanitize fileName inputs on upload, rejecting path separators or parent‑directory traversal
  • Separate silo namespaces in storage or implement strict bucket policies to prevent cross‑tenant writes

Generated by OpenCVE AI on November 4, 2026 at 23:37 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 05 Nov 2026 00:30:00 +0000

Type Values Removed Values Added
First Time appeared Readest
Readest readest
Vendors & Products Readest
Readest readest

Wed, 04 Nov 2026 22:00:00 +0000

Type Values Removed Values Added
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 apps/readest-app/src/pages/api/storage/upload.ts route constructed an object key from the authenticated user's identifier and a client-controlled fileName without rejecting path separators or parent-directory traversal. In the R2 backend, apps/readest-app/src/utils/r2.ts placed that key into a new Request URL before signing it, and URL normalization collapsed parent-directory components so the resulting presigned PUT could escape the caller's namespace. An authenticated attacker who knew a target user identifier and book hash could overwrite or poison that user's stored book object and corrupt the associated file_key metadata; the exact cross-tenant escape was verified for the R2 backend. This issue is fixed in version 0.11.10.
Title Readest: Cross-tenant object write via unsanitized fileName in /api/storage/upload (object-key path traversal)
Weaknesses CWE-22
References
Metrics cvssV3_1

{'score': 6.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-11-04T21:45:21.130Z

Reserved: 2026-06-24T18:49:56.206Z

Link: CVE-2026-57565

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-11-04T22:18:06.680

Modified: 2026-11-04T22:18:06.680

Link: CVE-2026-57565

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-11-05T00:15:15Z

Weaknesses
  • CWE-22

    Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')