Advisory Database
  • Advisories
  • Dependency Scanning
  1. golang
  2. ›
  3. go.senan.xyz/gonic
  4. ›
  5. CVE-2026-49338

CVE-2026-49338: Subsonic API: any authenticated user can delete or read any other user's playlist (IDOR)

June 26, 2026

In gonic, 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:

  1. Delete any playlist owned by any other user (including admin) by passing its id.
  2. 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.

References

  • github.com/advisories/GHSA-hmgp-w9jm-vp95
  • github.com/sentriz/gonic/commit/6dd71e6
  • github.com/sentriz/gonic/security/advisories/GHSA-hmgp-w9jm-vp95
  • nvd.nist.gov/vuln/detail/CVE-2026-49338

Code Behaviors & Features

Detect and mitigate CVE-2026-49338 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →

Affected versions

All versions before 0.21.0

Fixed versions

  • 0.21.0

Solution

Upgrade to version 0.21.0 or above.

Impact 7.1 HIGH

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:N

Learn more about CVSS

Weakness

  • CWE-285: Improper Authorization
  • CWE-639: Authorization Bypass Through User-Controlled Key

Source file

go/go.senan.xyz/gonic/CVE-2026-49338.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Sat, 27 Jun 2026 12:16:24 +0000.