Authentication bypass vulnerability in navidrome’s subsonic endpoint
Discription

Summary A security vulnerability has been identified in navidrome's subsonic endpoint, allowing for authentication bypass. This exploit enables unauthorized access to any known account by utilizing a JSON Web Token (JWT) signed with the key "not so secret". The vulnerability can only be exploited on instances that have never been restarted. Details Navidrome supports an extension to the subsonic authentication scheme, where a JWT can be provided using a jwt query parameter instead of the traditional password or token and salt (corresponding to resp. the p or t and s query parameters). During the first initialization, navidrome generates a random key that is then used by the authentication module to validate JWTs before extracting the username from the sub claim. If for some reason the key cannot be retrieved by the initialization code, a hardcoded value is used instead: "not so secret". A bug in the order of operations during navidrome startup results in the authentication module initializing before the module responsible for generating and persisting the random key. As a consequence, the authentication module falls back to using the hardcoded value, which remains in use until the instance gets restarted. Additionally, an error that was meant to be logged when the fallback value is used does not get logged due to another bug, preventing the operator from becoming aware of the issue. The flaw allows the creation of a JWT with the sub claim set to any existing user on the…Read More

Back to Main

Subscribe for the latest news: