Skip to content

navidrome

v0.62.0 Security

This release includes 5 security fixes for security teams reviewing exposed deployments.

Published 1mo Media Servers
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →
This release patches 5 known CVEs

Topics

airsonic madsonic media-server music music-server navidrome
+8 more
opensubsonic raspberry-pi self-hosted streamer streaming-api streaming-audio subsonic subsonic-server

Affected surfaces

auth rbac breaking_upgrade

ReleasePort's take

Moderate signal
editorial:auto 1mo

Navidrome v0.62.0 resolves multiple critical security flaws affecting cross‑account data exposure, tenant isolation, authentication bypasses, and denial‑of‑service vectors.

Why it matters: Fixes high‑severity issues (severities 90–70) that enable unauthorized access to shares, player takeover, session hijack, JWT bypass, admin config disclosure, radio API authorization gaps, and ffmpeg DoS; mitigations are immediate.

Summary

AI summary

Broad release touches https://github.com/deluan, UI, Translations, and Subsonic API.

Changes in this release

Security Critical

Fixes cross-account disclosure of other users' shares.

Fixes cross-account disclosure of other users' shares.

Source: llm_adapter@2026-06-08

Confidence: high

Security Critical

Fixes cross-tenant player takeover and share-update IDOR.

Fixes cross-tenant player takeover and share-update IDOR.

Source: llm_adapter@2026-06-08

Confidence: high

Security High

Fixes unauthenticated Last.fm scrobble session hijack (IDOR).

Fixes unauthenticated Last.fm scrobble session hijack (IDOR).

Source: llm_adapter@2026-06-08

Confidence: high

Security High

Fixes JWT expiration bypass on public share stream endpoints.

Fixes JWT expiration bypass on public share stream endpoints.

Source: llm_adapter@2026-06-08

Confidence: high

Security High

Fixes disclosure of admin‑only transcoding configuration to non‑admin users.

Fixes disclosure of admin‑only transcoding configuration to non‑admin users.

Source: llm_adapter@2026-06-08

Confidence: high

Security High

Fixes missing admin authorization on internet radio station management endpoints.

Fixes missing admin authorization on internet radio station management endpoints.

Source: llm_adapter@2026-06-08

Confidence: high

Security High

Caps concurrent transcodes to prevent ffmpeg‑based denial of service.

Caps concurrent transcodes to prevent ffmpeg‑based denial of service.

Source: llm_adapter@2026-06-08

Confidence: high

Security High

Adds `EnforceNonRootUser` option to exit early if Navidrome runs as root.

Adds `EnforceNonRootUser` option to exit early if Navidrome runs as root.

Source: llm_adapter@2026-06-08

Confidence: high

Breaking High

Deprecates `EnableTranscodingCancellation` in favor of `Transcoding.EnableCancellation`.

Deprecates `EnableTranscodingCancellation` in favor of `Transcoding.EnableCancellation`.

Source: llm_adapter@2026-06-08

Confidence: high

Breaking High

Deprecates `SimilarSongsMatchThreshold` in favor of `Matcher.FuzzyThreshold`.

Deprecates `SimilarSongsMatchThreshold` in favor of `Matcher.FuzzyThreshold`.

Source: llm_adapter@2026-06-08

Confidence: high

Feature Low

Introduces OpenSubsonic `sonicSimilarity` extension for audio‑based similarity.

Introduces OpenSubsonic `sonicSimilarity` extension for audio‑based similarity.

Source: granite4.1:30b@2026-06-08-audit

Confidence: low

Feature Low

Implements OpenSubsonic `playbackReport` extension replacing scrobble flow.

Implements OpenSubsonic `playbackReport` extension replacing scrobble flow.

Source: granite4.1:30b@2026-06-08-audit

Confidence: low

Feature Low

Adds ReplayGain fields to smart playlist criteria.

Adds ReplayGain fields to smart playlist criteria.

Source: granite4.1:30b@2026-06-08-audit

Confidence: low

Feature Low

Adds `isMissing` and `isPresent` operators to smart playlists.

Adds `isMissing` and `isPresent` operators to smart playlists.

Source: granite4.1:30b@2026-06-08-audit

Confidence: low

Feature Low

Adds five new UI themes (Tokyo Night, Catppuccin Latte, Moonbase Alpha/Dark, etc.).

Adds five new UI themes (Tokyo Night, Catppuccin Latte, Moonbase Alpha/Dark, etc.).

Source: granite4.1:30b@2026-06-08-audit

Confidence: low

Dependency Low

Upgrades Go to version 1.26.

Upgrades Go to version 1.26.

Source: granite4.1:30b@2026-06-08-audit

Confidence: low

Performance Medium

Optimizes smart playlist performance for role and tag criteria.

Optimizes smart playlist performance for role and tag criteria.

Source: granite4.1:30b@2026-06-08-audit

Confidence: low

Refactor Low

Splits HTML sanitization from plaintext handling.

Splits HTML sanitization from plaintext handling.

Source: granite4.1:30b@2026-06-08-audit

Confidence: low

Full changelog

This release introduces support for the OpenSubsonic sonicSimilarity extension, enabling audio-based similarity through the plugin system: when a plugin provides the capability, the new getSonicSimilarTracks and findSonicPath endpoints unlock smarter, sound-based recommendations and playlists. One plugin that implements it is AudioMuse-AI. It also brings a major overhaul to playback reporting and the Now Playing experience — the UI now uses the new OpenSubsonic playbackReport extension, replacing the old scrobble flow with a redesigned panel and configurable reporting interval. On the security front, it hardens the server with stronger ownership and authorization checks across shares, players, and transcoding endpoints, caps concurrent transcodes to prevent ffmpeg-based denial of service, and adds an option to refuse to run as root. Smart playlists gain ReplayGain fields and new isMissing/isPresent operators, and there are five new UI themes to choose from.

Security

This release fixes several reported vulnerabilities. We thank the security researchers who responsibly disclosed them.

Note: Several of the advisories linked above are still in draft/triage on GitHub at the time of writing. Their links will become publicly accessible once the advisories are published. The fixes themselves are already included in this release.

Configuration Changes

| Status | Option | Description | Default |
|--------|--------|-------------|---------|
| New | EnforceNonRootUser | Exit early on startup if Navidrome is running as root (ignored on Windows). (#5373) | false |
| New | Transcoding.MaxConcurrent | Maximum number of concurrent transcodes server-wide (0 = unlimited). (#5522) | 0 |
| New | Transcoding.MaxConcurrentPerUser | Maximum number of concurrent transcodes per user (0 = unlimited). (#5522) | 0 |
| New | Matcher.PreferStarred | Bias the fuzzy matcher toward starred/high-rated tracks. (#5387) | true |
| New | UIPlaybackReportInterval | How often the UI reports playback progress. (#5448) | 1m |
| Deprecated | EnableTranscodingCancellationTranscoding.EnableCancellation | Renamed and moved under the new Transcoding section. (#5523) | false |
| Deprecated | SimilarSongsMatchThresholdMatcher.FuzzyThreshold | Renamed and moved under the new Matcher section. (#5387) | 85 |

For a complete list of all configuration options, see the Configuration Options documentation.

UI

Smart Playlists

  • Add ReplayGain fields to the criteria system. (d9dac4445 by @deluan)
  • Add isMissing and isPresent operators. (#5436 by @deluan)
  • Relax playlist visibility in inPlaylist/notInPlaylist rules. (#5411 by @deluan)
  • Optimize smart playlist performance for role and tag criteria. (#5515 by @deluan)
  • Coerce string booleans in smart playlist rules. (#5450 by @deluan)

Subsonic API

  • Implement the playbackReport OpenSubsonic extension. (#5442 by @deluan)
  • Add the sonicSimilarity extension as a plugin capability. (#5419 by @deluan)
  • Add a groupings field to the OpenSubsonic Child response. (f12e75aa1 by @deluan)
  • Use SQLite RANDOM() sorting in getRandomSongs for faster results. (cf1f190bb by @deluan)
  • Mark AlbumID3 songCount and created as required. (8897ec918 by @deluan)
  • Normalize non-NFKD Unicode letters (ø, æ, œ, ß) in search. (#5413 by @deluan)

Transcoding

  • Place -ss before -i for fast input seeking. (#5492 by @deluan)
  • Don't apply server-side override on getTranscodeDecision. (#5473 by @deluan)
  • Log a warning for invalid or stale transcode tokens. (9a2eb483e by @deluan)

Scanner

  • Respect tag-split config when multiple frames map to the same tag. (#5193 by @trek-e)
  • Fix error when importing playlists without an admin user. (5b85b2839 by @deluan)

Artwork

  • Fix stale cache and top-level album artwork for multi-disc albums. (#5457 by @deluan)
  • Prefer album-root images over disc-subfolder images for multi-disc albums. (#5451 by @deluan)
  • Return the correct timestamp when disc or album cover art changes. (#5378 by @bobo-xxx)

Server

  • Prevent artwork throttle token starvation on slow clients. (#5472 by @deluan)
  • Proxy NowPlaying even when ignoreScrobble is set. (#5559 by @deluan)
  • Make the /api/song path filter work and use startsWith. (#5566 by @deluan)
  • Preserve unchanged fields on partial REST playlist updates. (#5542 by @deluan)
  • Allow toggling playlist auto-import and avoid unnecessary artwork reloads. (#5421 by @deluan)

Matcher

  • Add Matcher.PreferStarred option to bias the fuzzy matcher toward starred/high-rated tracks. (#5387 by @deluan)

Plugins

CLI

  • Add pls export/import subcommands for bulk playlist management. (#5412 by @deluan)
  • Restore int cast for syscall.Stdin on Windows. (e75ab3b03 by @deluan)

Build & Dependencies

  • Improve Windows support: the Go test suite now runs on Windows CI, with previously-skipped Subsonic, artwork, watcher, and scheduler tests enabled and fixed. (#5380, #5427, #5416 by @deluan)
  • Upgrade Go to 1.26. (#5361 by @deluan)
  • Enable native libwebp encoding in the Docker image. (#5350 by @deluan)
  • Update TagLib to 2.3. (e55a35544 by @deluan)

Translations

New Contributors

Full Changelog: https://github.com/navidrome/navidrome/compare/v0.61.2...v0.62.0

Helping out

This release is only possible thanks to the support of some awesome people!

Want to be one of them?
You can sponsor, pay me a Ko-fi, or contribute with code.

Where to go next?

Breaking Changes

  • Deprecation of `EnableTranscodingCancellation` (renamed to `Transcoding.EnableCancellation`)
  • Deprecation of `SimilarSongsMatchThreshold` (renamed to `Matcher.FuzzyThreshold`)

Security Fixes

  • GHSA-3g4p-jhv2-xrxf – Enforces per‑user ownership on share reads to prevent cross‑account disclosure of shares and tokens
  • GHSA-x65f-m8x9-pjxm, GHSA-58gr-c777-g23p, GHSA-wx2c-q8g7-4q5p – Atomically enforce ownership on player and share updates to stop cross‑tenant takeover/IDOR issues
  • GHSA-8jrh-w926-8rvw – Requires signed state token for Last.fm scrobble link callbacks to block session hijack (IDOR)
  • GHSA-3rfj-qx9q-jghx – Validates JWT expiration and share existence on public stream endpoints to fix admin‑only config disclosure
  • GHSA-jw24-qqrj-633c – Requires admin access for Subsonic internet radio station management endpoints

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track navidrome

Get notified when new releases ship.

Sign up free

About navidrome

Your Personal Streaming Service

All releases →

Beta — feedback welcome: [email protected]