Description
9Router is an AI router & token saver. Prior to 0.5.2, 9router determines whether a /v1 LLM proxy request is local by reading the client-controlled Host header, allowing a remote unauthenticated attacker to send Host: localhost and bypass API-key authentication. In the default configuration, this exposes the /v1 proxy to upstream provider calls using stored provider credentials and allows /v1/search with the searxng provider_options.baseUrl parameter to drive server-side requests to internal or cloud-metadata hosts. This issue is fixed in version 0.5.2.
Problem types
CWE-290: Authentication Bypass by Spoofing
CWE-348: Use of Less Trusted Source
CWE-918: Server-Side Request Forgery (SSRF)
CWE-1327: Binding to an Unrestricted IP Address
Product status
References
github.com/...router/security/advisories/GHSA-86m2-fcxq-5q7c
github.com/...router/security/advisories/GHSA-86m2-fcxq-5q7c
github.com/...ommit/b282f0554972ea35281520738759d76abcd0b0b3
github.com/decolua/9router/releases/tag/v0.5.2