Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend unauthenticated GET to /items/..%2F-traversal-path/cover
-
DeliveryAuth-exemption regex passes on encoded req.path
-
ExploitExpress decodes :id to filesystem traversal string
-
ExecutionCacheManager joins decoded path into cache file path
-
ImpactServer streams matching file contents to attacker
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The /items/:id/cover and /authors/:id/image GET endpoints are explicitly exempted from authentication to support public cover art display - this is a deliberate design feature that the auth bypass leverages. Exploitation requires: (1) the audiobookshelf HTTP service is reachable by the attacker over the network; (2) the attacker crafts a :id parameter containing %2F-encoded directory traversal sequences (e.g., ..%2f..%2f); and (3) the target file on disk matches the naming pattern *_<width>[x<height>].<ext> (such as config_800x600.json or key_100.pem), since CacheManager enforces this pattern when constructing the cache file path. No authentication, no special server configuration, and no user interaction are required beyond a default audiobookshelf installation with cover art serving enabled. Exploitation is limited by the filename suffix constraint - attackers cannot read arbitrary files but must find or enumerate files whose names conform to the cache naming convention that the service account can read. |
| Impact | The CVSS 3.1 vector AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N accurately characterizes this as a high-severity, easily exploitable flaw: it is reachable over the network with no authentication, no user interaction, and no special configuration. The confidentiality impact is constrained by one practical factor - readable files must match the filename pattern *_<width>[x<height>].<ext> (e.g., secret_100x100.png), which limits arbitrary file disclosure to files whose names conform to that cache naming convention. This reduces exploitation to a moderate-effort enumeration exercise rather than a fully open file read, but does not drop the real-world priority, particularly for deployments where sensitive files on disk might coincidentally match the pattern. The bypass of a prior patch (CVE-2025-25205) increases confidence that the vulnerability is genuine and that the underlying encoding normalization issue is systemic. No CISA KEV listing and no confirmed public POC at time of analysis; however, the zero-prerequisite attack profile is consistent with rapid weaponization once the advisory is public. EPSS data was not provided, but the AV:N/AC:L/PR:N/UI:N profile is historically associated with above-median exploitation probability. |
| Exploit ScenarioDerived | An unauthenticated attacker sends a crafted HTTP GET request such as GET /items/..%2f..%2f..%2fetc%2fpwned_100x100.png/cover to a publicly accessible audiobookshelf instance; the auth-exemption regex in Auth.js passes the request because req.path retains the encoded slashes, matching the exempted route shape. Express decodes the :id parameter to ../../etc/pwned_100x100.png before CacheManager.handleCoverCache constructs the filesystem path, and the server streams back any readable file whose name matches the *_<width>[x<height>].<ext> pattern. No public exploit code has been confirmed at time of analysis, but the exploit primitive is straightforward HTTP request crafting requiring no tooling beyond curl. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 05, 2026
Unauthenticated arbitrary file read in audiobookshelf exploits a URL-encoding normalization gap between the Express authentication-exemption regex (which reads raw percent-encoded req.path) and Express's route parameter decoder (which decodes %2F sequences before handler execution), allowing any remote attacker to traverse the filesystem via crafted cover art requests. This directly bypasses the prior fix for CVE-2025-25205, which had anchored the auth-exemption regex to req.path - meaning the root cause was incompletely remediated. No CISA KEV listing or confirmed public exploit exists at time of analysis, but the AV:N/AC:L/PR:N/UI:N profile and bypass-of-prior-patch nature make this high priority for all internet-facing audiobookshelf deployments.
RemediationAI
Upgrade audiobookshelf to the version that addresses GHSA-pg8v-5jcv-wrvw per the vendor security advisory at https://github.com/advplyr/audiobookshelf/security/advisories/GHSA-pg8v-5jcv-wrvw. No specific patched version number was present in the provided data - the advisory must be checked before deploying an upgrade to confirm the exact fix version. As a compensating control while awaiting the patch, place audiobookshelf behind a reverse proxy or firewall that restricts access to the /items/*/cover and /authors/*/image endpoints to authenticated sessions or trusted network ranges only; be aware this will break public cover art display for unauthenticated users. A stricter mitigation is to block any requests to these endpoints whose :id parameter contains percent-encoded characters (%2F, %2E) at the proxy layer, which eliminates the encoding normalization bypass without fully disabling the feature, though proxy-level URL normalization behavior must be verified to avoid introducing a similar bypass at a different layer.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
audiobookshelf is a Node.js/Express self-hosted audiobook and podcast server (CPE: cpe:2.3:a:advplyr:audiobookshelf:*:*:*:*:*:*:*:*). The flaw is in server/routers/Auth.js, where a regex tests req.path to determine if a GET route is authentication-exempt - specifically routes shaped like /items/:id/cover and /authors/:id/image intended for public cover art. Express preserves percent-encoded characters in req.path (so %2F remains %2F), but decodes :id route parameters before passing them to handler code. An attacker encodes ../ as ..%2f in the :id slot: the literal-path auth-exemption regex sees the encoded form and grants exemption, while the handler receives the decoded traversal string. CacheManager.handleCoverCache then joins the decoded :id value directly into a cache file path and streams the result without a database-backed ownership check, completing the read. CWE-22 (Improper Limitation of a Pathname to a Restricted Directory) is the root cause class - a classic percent-encoding normalization bypass applied to an authorization boundary.
Know when Audiobookshelf gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Network-reachable cover art endpoint requires no auth; file read only with no integrity or availability impact; AC:L despite filename pattern constraint because attacker controls traversal path construction.
Primary rating from Vendor (TuranSec).
CVSS VectorVendor: TuranSec
DescriptionCVE.org
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.
Latest POC
1 public PoC link from nuclei
Sign in to open the public PoC links collected for this CVE.
Executive ViewAI
Audiobookshelf contains an unauthenticated file-read vulnerability (CVE-2026-71209) that bypasses authentication controls for cover art requests, allowing remote attackers to read arbitrary files from the server without valid credentials. This represents a regression in security controls that were intended to be fixed in prior patch CVE-2025-25205, creating immediate exposure for any internet-facing deployment. Organizations using audiobookshelf face direct risk of unauthorized access to sensitive server content including configuration files, credentials, and potentially customer data.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Implement WAF rules to detect and block requests containing %2F or other URL-encoding bypass patterns in cover-art endpoint paths; (2) Restrict network access to audiobookshelf to internal networks or VPN only; (3) Disable cover-art serving if not operationally required; (4) Deploy reverse proxy authentication in front of all audiobookshelf instances; (5) Enable detailed request logging and alerting on cover-art endpoint access patterns for detection of exploitation attempts.
Threat Model
2 threats: Information Disclosure, Elevation of Privilege
4-step attack chain with trust boundaries and controls
Full threat model - attack chain, trust boundaries, controls per stage and evidence - is part of the Pro and Business plans.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
More in Audiobookshelf
View allAudiobookshelf is a self-hosted audiobook and podcast server. Rated high severity (CVSS 8.2), this vulnerability is remo
Audiobookshelf is a self-hosted audiobook and podcast server. Rated medium severity (CVSS 6.9), this vulnerability is re
Audiobookshelf is a self-hosted audiobook and podcast server. Rated medium severity (CVSS 6.5), this vulnerability is re
Audiobookshelf is a self-hosted audiobook and podcast server. Rated medium severity (CVSS 6.5), this vulnerability is re
Stored XSS in Audiobookshelf prior to version 2.32.0 enables privileged users to inject malicious code into library meta
Audiobookshelf is a self-hosted audiobook and podcast server. Rated medium severity (CVSS 4.8), this vulnerability is re
audiobookshelf is a self-hosted audiobook and podcast server. Rated medium severity (CVSS 4.3), this vulnerability is re
Audiobookshelf is a self-hosted audiobook and podcast server. Rated high severity (CVSS 7.5), this vulnerability is remo
Audiobookshelf is a self-hosted audiobook and podcast server. Rated high severity (CVSS 7.5), this vulnerability is remo
Path traversal in Audiobookshelf's podcast creation endpoint allows attackers to write files outside the intended librar
Authenticated users with download permissions in Audiobookshelf prior to 2.32.2 can download files from libraries they d
JWT token type confusion in Audiobookshelf prior to 2.36.0 allows any holder of a valid refresh token to authenticate AP
EUVD-2026-53206
GHSA-8885-9f28-m6p3
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB