CVE-2026-49338: Gonic Authorization Bypass Allows Playlist Deletion and Private Content Access
Gonic is an open-source music streaming server that implements the Subsonic API. Before version 0.21.0, two API endpoints failed to properly check which user is asking for access to playlists. This means any logged-in user—even with limited privileges—could delete playlists belonging to any other user, including administrators, and read the contents of private playlists if they could guess or find the playlist ID. The vulnerability stems from the fact that playlist IDs are predictable (based on user IDs and filenames) and sometimes publicly exposed before being marked private. This breaks the isolation between user accounts that the system is supposed to maintain.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 7.1 HIGH · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:N
- Weaknesses (CWE)
- CWE-285, CWE-639
- Affected products
- 0 configuration(s)
- Published / Modified
- 2026-06-19 / 2026-06-23
NVD description (verbatim)
gonic is a music streaming server / free-software subsonic server API implementation. Prior to version 0.21.0, the Subsonic API endpoints `/rest/deletePlaylist.view` and `/rest/getPlaylist.view` perform no per-resource authorization. Once authenticated as any user (admin or not), an attacker can delete any playlist owned by any other user (including admin) by passing its `id` and read the full contents (name, comment, song list) of any other user's **private** (non-public) playlist by passing its `id`. The Subsonic playlist `id` is `base64url("<userID>/<filename>.m3u")`. Because filenames are user-supplied or time-derived and the `userID` is a small integer, IDs are guessable and frequently exposed (e.g. a previously-public playlist that was later made private still has the same ID). This breaks the multi-user trust boundary of gonic: a low-privileged user can wipe an administrator's curated playlists, and a user can exfiltrate any private playlist they obtain an ID for. The issue was fixed in commit `6dd71e6a3c966867ef8c900d359a7df75789f410`, which is part of version 0.21.0.
2 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability resides in the Subsonic API endpoint implementations `/rest/deletePlaylist.view` and `/rest/getPlaylist.view` in gonic versions prior to 0.21.0. These endpoints perform user authentication but lack per-resource authorization checks, allowing any authenticated user to perform operations on playlists owned by other users. Playlist IDs are generated as base64url-encoded strings combining a numeric user ID and a playlist filename. Because user IDs are small integers and filenames are either user-supplied or time-derived, the ID space is sufficiently guessable. Previously-public playlists retain the same ID when made private, creating an attack vector for ID discovery. The fix (commit 6dd71e6a3c966867ef8c900d359a7df75789f410) implements proper ownership validation before allowing playlist access or deletion.
Business impact
For organizations or communities running gonic instances with multiple users, this vulnerability enables account-to-account attacks within the same system. Administrators lose the ability to protect curated playlists from deletion by lower-privileged users. Content creators or users storing private playlists risk unauthorized access and information disclosure. The breach of multi-user trust boundaries can erode confidence in the platform's security posture, particularly in collaborative or shared music library deployments. Downtime or data loss from malicious playlist deletion may disrupt service availability.
Affected systems
All deployments of gonic prior to version 0.21.0 are affected. The vulnerability is present regardless of operating system or deployment method, as it is a logic flaw in the core API implementation. Any instance exposed to multiple user accounts is at risk. Standalone single-user installations are not vulnerable in a practical sense, as there are no other users to target.
Exploitability
Exploitation requires valid login credentials (any user account), making it an authenticated attack. However, the barrier to entry is low: attackers need only gain access to a single low-privileged account or use leaked credentials. No special tools or complex interaction are required; standard HTTP requests to the affected endpoints with guessed or known playlist IDs suffice. The predictability of playlist IDs significantly reduces the effort needed to identify targets. The CVSS score of 7.1 reflects the combination of required authentication, network accessibility, and high integrity impact balanced against limited confidentiality impact.
Remediation
Upgrade gonic to version 0.21.0 or later. The fix enforces per-resource authorization checks ensuring that only the playlist owner or an administrator can access or delete a given playlist. No configuration changes or workarounds are available for earlier versions; patching is the only remediation.
Patch guidance
Apply the update to gonic version 0.21.0 immediately. Verify the update against the official gonic repository and release notes. If running gonic in a containerized environment, pull the updated image. If building from source, ensure commit 6dd71e6a3c966867ef8c900d359a7df75789f410 or later is included. After patching, restart the gonic service and validate that authorization checks are enforced by attempting to access or delete a playlist owned by a different user—the operation should be rejected.
Detection guidance
Monitor HTTP logs for repeated or suspicious requests to `/rest/deletePlaylist.view` and `/rest/getPlaylist.view` endpoints from a single user account, particularly requests targeting playlist IDs that do not match the requesting user's ID pattern. Examine gonic access logs for delete operations on playlists across multiple user ID boundaries. If the application logs resource ownership information, correlate deletion events with user IDs to identify cross-user deletion attempts. Review audit logs for unexpected playlist deletions if they are recorded. After patching, these operations should be denied and may appear as HTTP 403 (Forbidden) responses.
Why prioritize this
This vulnerability directly impacts multi-user security and data integrity. The combination of predictable IDs, low exploitation complexity, and high integrity impact (ability to delete any playlist) makes it a priority for any gonic deployment with multiple user accounts. The fact that even administrators are vulnerable to attack by low-privileged users elevates the risk to governance and operational continuity.
Risk score, explained
The CVSS 3.1 score of 7.1 (HIGH) reflects: network-based attack vector (AV:N), low attack complexity (AC:L), low privilege requirement (PR:L), and no user interaction needed (UI:N). The scope is unchanged (single trust boundary affected, though authorization is broken within it). Confidentiality impact is low (C:L) because exfiltration requires guessing valid playlist IDs; integrity impact is high (I:H) due to unrestricted playlist deletion by any authenticated user. Availability is not directly impacted (A:N), though deletion of playlists could disrupt service utility.
Frequently asked questions
Does this vulnerability affect single-user gonic instances?
No. Single-user instances have no other users to target, making the vulnerability harmless in practice. However, if the instance is later configured for multi-user access, it becomes vulnerable until patched.
How can an attacker guess or find a valid playlist ID?
Playlist IDs are base64url-encoded combinations of a user ID (a small integer) and a filename. User IDs are often sequential and may be disclosed in error messages or API responses. Filenames are user-supplied or time-derived and sometimes exposed if playlists were previously public. Attackers can also brute-force the ID space given the limited entropy.
Can administrators detect or prevent this attack if not yet patched?
Detection is possible by monitoring API logs for cross-user playlist access attempts, but prevention without patching is limited to network access controls (IP whitelisting) or disabling the vulnerable endpoints. Immediate upgrade to version 0.21.0 is the only effective mitigation.
Does the fix require data migration or backup?
No. The fix only adds authorization checks and does not modify data structures or require backups. However, as with any upgrade, it is prudent to test in a staging environment first and maintain backups as part of standard operations.
This analysis is based on publicly available information and the CVE record as of the publication date. Readers should verify patch availability and version numbers against the official gonic project repository and release notes. No proof-of-concept code or weaponized exploit details are provided. Organizations should conduct their own risk assessment based on deployment configuration and data sensitivity. SEC.co does not warrant the completeness or accuracy of third-party vendor information and recommends consulting official security advisories. Source: NVD (public-domain), retrieved 2026-07-28. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-12204HIGHShopXO Authorization Bypass in Order & Payment Processing
- CVE-2026-10154MEDIUMDolibarr ERP CRM Authorization Bypass in Messaging Module
- CVE-2026-10212MEDIUMAstrBot 4.24.2 Authorization Bypass via Session ID Manipulation
- CVE-2026-11461MEDIUMhermes-agent Authorization Bypass in Resume Endpoint
- CVE-2026-11500MEDIUMWeaviate Authorization Bypass in Static API Key Handler
- CVE-2026-47713LOWAnythingLLM Pre-Migration Token Privilege Escalation & Data Exposure
- CVE-2025-14772HIGHABB T-MAC Plus Authorization Bypass (CVSS 8.8)
- CVE-2025-59133HIGHProjectopia Custom Role IDOR Vulnerability (7.5 CVSS)