Description
audiobookshelf's authentication-exemption check (server/routers/Auth.js) matches unauthenticated-allowed GET routes against req.path via a regex requiring a literal /items/:id/cover or /authors/:id/image shape, where req.path retains %2F sequences URL-encoded. Express's router decodes the :id route parameter before handler code runs, so a %2F-encoded '../' sequence in :id (e.g. ..%2f..%2f..%2ftmp%2fpwned) passes the literal-path auth-exemption check while resolving to a real path-traversal payload once decoded. CacheManager.handleCoverCache then joins this decoded value into a cache file path and streams the result before any database-backed ownership check. This bypasses the fix applied for CVE-2025-25205 (which anchored the exemption regex and switched it to req.path) and results in unauthenticated arbitrary file read of any file matching the pattern *_<width>[x<height>].<ext> that the service account can read.
Published: 2026-08-05
Score: 7.5 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

AudiobookShelf’s authentication‑exemption logic incorrectly allows URLs containing encoded "\%2F" sequences. While the regex for exempt routes checks against the literal path "\/items\/\:id\/cover" or "\/authors\/\:id\/image", Express decodes the :id parameter before the handler runs. An attacker can supply a chain of "..\%2F" segments in the :id field (e.g., "..\%2F..\%2F..\%2Ft…") that passes the literal regex check but resolves to a real filesystem path after decoding. The application then materialises this decoded value into a cache file path and streams the resulting file to the client before any ownership validation is performed. Consequently, any file matching the pattern "*_<width>[x<height>].<ext>" that the service account can read becomes arbitrarily readable by unauthenticated users.

Affected Systems

The vulnerability affects the AudiobookShelf product from advplyr. No specific version information is provided in the available data; therefore, all released versions of AudiobookShelf that still use the affected authentication-exemption implementation are potentially impacted.

Risk and Exploitability

The CVSS score of 7.5 indicates a high‑severity issue. No EPSS score is available, and the vulnerability is not listed in CISA’s KEV catalog, suggesting limited known exploitation activity to date. However, the attack vector is straightforward: an unauthenticated HTTP GET request to a cover or author image route containing encoded path‑traversal segments will bypass authentication checks and retrieve arbitrary files. Because no database ownership check precedes the file read, the full impact is the uncontrolled exposure of sensitive files under cover image naming conventions. This makes the vulnerability a prime target for attackers seeking data exfiltration from the service.

Generated by OpenCVE AI on August 5, 2026 at 08:37 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the latest AudiobookShelf patch that addresses CVE‑2026‑71209 as released by advplyr.
  • Configure the web server or reverse proxy to deny unauthenticated access to the "/items/*/cover" and "/authors/*/image" endpoints, allowing only authenticated sessions.
  • Modify or enforce stricter input validation on the :id parameter to reject encoded "/" ("\%2F") sequences before routing or file handling logic.

Generated by OpenCVE AI on August 5, 2026 at 08:37 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 05 Aug 2026 09:00:00 +0000

Type Values Removed Values Added
First Time appeared Advplyr
Advplyr audiobookshelf
Vendors & Products Advplyr
Advplyr audiobookshelf

Wed, 05 Aug 2026 07:30:00 +0000

Type Values Removed Values Added
Description audiobookshelf's authentication-exemption check (server/routers/Auth.js) matches unauthenticated-allowed GET routes against req.path via a regex requiring a literal /items/:id/cover or /authors/:id/image shape, where req.path retains %2F sequences URL-encoded. Express's router decodes the :id route parameter before handler code runs, so a %2F-encoded '../' sequence in :id (e.g. ..%2f..%2f..%2ftmp%2fpwned) passes the literal-path auth-exemption check while resolving to a real path-traversal payload once decoded. CacheManager.handleCoverCache then joins this decoded value into a cache file path and streams the result before any database-backed ownership check. This bypasses the fix applied for CVE-2025-25205 (which anchored the exemption regex and switched it to req.path) and results in unauthenticated arbitrary file read of any file matching the pattern *_<width>[x<height>].<ext> that the service account can read.
Title audiobookshelf: %2F Encoding Discrepancy Bypasses Cover/Image Auth Exemption Regex, Enabling Unauthenticated Path Traversal
Weaknesses CWE-22
References
Metrics cvssV3_1

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


Subscriptions

Advplyr Audiobookshelf
cve-icon MITRE

Status: PUBLISHED

Assigner: TuranSec

Published:

Updated: 2026-08-05T06:59:16.579Z

Reserved: 2026-08-05T06:56:15.799Z

Link: CVE-2026-71209

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-05T08:45:16Z

Weaknesses
  • CWE-22

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