Summary
CVE-2026-71209 is a path traversal vulnerability (CWE-22) in advplyr’s audiobookshelf, a self-hosted audiobook and podcast server. A discrepancy between how the authentication-exemption check and Express’s route decoding handle URL-encoded input lets an unauthenticated attacker read arbitrary files on the server. It is rated High severity (CVSS 7.5).
Technical details
- Root cause: The authentication-exemption check in
server/routers/Auth.jsmatches unauthenticated-allowed GET routes againstreq.pathusing a regex that requires a literal/items/:id/coveror/authors/:id/imageshape, wherereq.pathstill holds URL-encoded/sequences. Express’s router decodes the:idroute parameter before handler code runs, so a percent-encoded../sequence in:idpasses the literal-path exemption check while resolving to a real path-traversal payload once decoded. - Trigger conditions: An attacker sends a crafted request with percent-encoded traversal sequences (e.g.
..%2f..%2f..%2ftmp%2fpwned) to the cover/image endpoint.CacheManager.handleCoverCache(server/managers/CacheManager.js) then joins the decoded value into a cache file path and streams the result before any database-backed ownership check. - Attack vector: Network; no authentication and no user interaction required.
- Impact: Unauthenticated arbitrary file read of any file matching the pattern
*_<width>[x<height>].<ext>that the service account can read. This bypasses the fix applied for CVE-2025-25205.
Affected software
- audiobookshelf versions 2.19.1 through 2.35.1
Severity
- CVSS v3.1 base score: 7.5 (High)
- Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Mitigation and recommended actions
- Immediate: No fixed release is confirmed in the vendor advisory at time of writing. Monitor the advisory (GHSA-pg8v-5jcv-wrvw) and the project’s GitHub releases, and upgrade to the patched version as soon as it is published.
- If no patch: Restrict network access to the audiobookshelf service so it is not reachable from untrusted networks; place it behind authenticated reverse-proxy or WAF rules that reject requests containing encoded traversal sequences; reduce the file-system permissions of the service account to limit readable files; and monitor request logs for path-traversal attempts.
How IONIX identifies potentially affected assets
IONIX matches the following signals against data already collected when it crawled the asset; identifying the technology sends no request beyond that crawl.
- Page title:
Audiobookshelf

