CVE-2025-48949 is a critical SQL injection (CVSS 9.8) in Navidrome versions 0.55.0 through 0.55.2. The role parameter of the /api/artist endpoint is not validated properly. The fix is in version 0.56.0, so upgrade to that release or a later one.
What's affected
The CVE record and the project's GitHub advisory agree on the range: Navidrome 0.55.0 through 0.55.2. The advisory gives the patched version as 0.56.0. The affected component is the /api/artist API endpoint and its role parameter. The advisory says the database involved is SQLite.
The advisory describes the attacker as unauthenticated, and the CVSS vector in the record shows no privileges required. Treat any Navidrome server reachable from the internet as in scope if it runs a version in the range.
How to check if you're exposed
Find the version you run. In a container setup, look at the image tag:
docker ps | grep navidrome
For other installs, check the version shown in the web interface or the release you installed. If it is 0.55.0, 0.55.1 or 0.55.2, you are affected. Earlier releases are outside the range in the record.
Then check exposure. Is the server published through a reverse proxy to the open internet, or only on your home or office network? Look at your reverse proxy logs for requests to the artist API with unusual values in the role parameter:
grep "/api/artist" /var/log/nginx/access.log | grep "role=" | tail -n 100
Adjust the log path. Legitimate clients send a short set of role values, so anything long or containing punctuation stands out.
What to do now
- Upgrade Navidrome to 0.56.0 or later. For containers, pull the new image and recreate the container.
- Back up the Navidrome data folder, including the SQLite database, before the upgrade.
- If you cannot upgrade today, restrict access to the server with a VPN or an allow list at your reverse proxy.
- Review logs for odd requests to the artist API, and look for unexpected changes to users or playlists.
- If you suspect abuse, change user passwords and any API tokens, and restore from a backup taken before the suspicious activity.
Why it matters
The weakness is SQL injection, CWE-89. A value from the request ends up inside an SQL command without being neutralised, so the database treats part of the input as instructions. The advisory names the possible results as running arbitrary SQL commands, reading or changing data such as user records and playlists, and possibly disrupting the service.
A music server looks like a low stakes target, and often it is. It still stores user accounts and password hashes, and many people run these servers on a home network with a port forwarded to the internet, which is the exposure that matters. Self hosted tools tend to sit outside the patch routines used for company systems, so they stay old longer than they should.
This is not on the CISA Known Exploited Vulnerabilities list. A dependency scan of the container or the Go module will show the version in use, and the Gold directory entry for this CVE lists the affected range, which makes it quick to find forgotten instances.
Try it yourself
Click through it at your own pace, or open it full screen.
Quick check
Is Navidrome 0.55.3 or later safe from this CVE?
The record lists 0.55.0 through 0.55.2 as affected and names 0.56.0 as the patched version. Move to 0.56.0 or later rather than stopping at an in between release.
Does an attacker need an account?
The advisory describes the attacker as unauthenticated, and the CVSS vector shows no privileges required.
Sources
Last reviewed: 18 October 2026.