Executive brief
Audiobookshelf is a self-hosted server for managing audiobooks and podcasts. A security flaw in the system's download feature allows an authorized user to download files from libraries they are not permitted to access. By providing specific file identifiers in a download request, an attacker can bypass library-level restrictions and exfiltrate private audiobooks, podcasts, or ebooks.
Technical details
An incorrect authorization vulnerability exists in the `downloadMultiple` handler within `server/controllers/LibraryController.js`. While the endpoint validates that a user has access to the library ID provided in the URL path, the underlying database query for the `ids` parameter fails to include a `libraryId` constraint. An attacker with a valid session and `canDownload` permissions can provide IDs of items belonging to other libraries in the query string. The server will then fetch these items and stream them as a ZIP file, bypassing the `librariesAccessible` permission model. This issue is resolved in version 2.32.2 by adding the `libraryId` constraint to the Sequelize `findAll` query.
Affected products
- advplyr Audiobookshelf < 2.32.2
Timeline
- 2026-04-24: advisory: GitHub Security Advisory published
- 2026-05-11: disclosed: CVE published to NVD
- 2026-05-11: patched: Fix released in version 2.32.2