Skip to main content

9Router CVE-2026-55641

| EUVDEUVD-2026-42930 HIGH
Authentication Bypass by Spoofing (CWE-290)
2026-07-10 GitHub_M GHSA-86m2-fcxq-5q7c
8.2
CVSS 3.1 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
8.2 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N
vuln.today AI
9.3 CRITICAL

Remote, no-auth, single-header bypass gives AV:N/AC:L/PR:N/UI:N; credential/metadata disclosure is C:H with limited I:L, and the SSRF pivot to other systems justifies S:C.

3.1 AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:L/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
Low
Availability
None

Lifecycle Timeline

2
Patch available
Jul 10, 2026 - 18:01 EUVD
Analysis Generated
Jul 10, 2026 - 16:58 vuln.today

DescriptionCVE.org

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.

AnalysisAI

Authentication bypass in 9Router (decolua/9router) before 0.5.2 lets a remote unauthenticated attacker forge a 'Host: localhost' header so the /v1 LLM proxy treats the request as local and skips API-key checks. Once past authentication, an attacker abuses stored provider credentials for upstream LLM calls and leverages /v1/search's searxng provider_options.baseUrl to force server-side requests to internal or cloud-metadata endpoints (SSRF). No public exploit identified at time of analysis, though the fixing commit is public, and EPSS/KEV signals are not provided.

Technical ContextAI

9Router is a self-hosted AI/LLM router and token-saving proxy that fronts multiple upstream providers and gates its /v1 endpoints behind an API key. The flaw is a classic CWE-290 (Authentication Bypass by Spoofing): the 'local request' trust decision is derived from the client-supplied Host header rather than from the actual transport source (socket peer address or a trusted reverse-proxy header). Because HTTP Host is fully attacker-controlled, sending Host: localhost impersonates a loopback client. A secondary weakness compounds this: the /v1/search route with the searxng backend accepts a caller-supplied provider_options.baseUrl, turning the trusted proxy into an SSRF pivot toward RFC1918 internal services and cloud metadata endpoints (e.g., 169.254.169.254). Per CPE cpe:2.3:a:decolua:9router, all versions prior to 0.5.2 are affected.

RemediationAI

Vendor-released patch: version 0.5.2 - upgrade all 9Router instances to 0.5.2 or later, which corrects how local/loopback requests are determined (fix commit b282f0554972ea35281520738759d76abcd0b0b3; advisory GHSA-86m2-fcxq-5q7c). If you cannot upgrade immediately, place 9Router behind a reverse proxy or firewall so that only trusted networks can reach the /v1 endpoints, and configure the proxy to strip or normalize inbound Host headers so external clients cannot assert Host: localhost (trade-off: may require pinning an expected Host/virtual-host and can break multi-host setups). Additionally, restrict outbound network egress from the 9Router host to block access to link-local metadata (169.254.169.254) and internal RFC1918 ranges to blunt the /v1/search SSRF (trade-off: legitimate internal search backends must be explicitly allowlisted), and where feasible disable or restrict the searxng provider or the caller-supplied provider_options.baseUrl parameter. Rotate any provider API keys/credentials stored in 9Router if internet exposure predates patching.

CVE-2026-59801 CRITICAL POC
9.3 Jul 13

Unauthenticated CRUD on the provider-management API in 9Router (through 0.4.41) lets remote attackers with no credential

CVE-2026-56677 HIGH POC
8.6 Aug 17

Server-Side Request Forgery (SSRF) in 9Router 0.5.4 and earlier allows unauthenticated remote attackers to probe interna

CVE-2026-63732 CRITICAL
9.4 Jul 23

Remote unauthenticated code execution in 9router 0.4.59 (by decolua) lets an attacker chain three flaws - a hardcoded de

CVE-2026-5842 MEDIUM POC
5.5 Apr 09

Remote authorization bypass in decolua 9router up to version 0.3.47 allows unauthenticated network attackers to access t

CVE-2026-62327 CRITICAL
9.3 Jul 13

Unauthenticated API key disclosure in 9Router (npm package '9router' by decolua) through version 0.4.41 lets any remote

CVE-2026-62312 HIGH
8.8 Jul 15

Authenticated remote code execution in 9Router before 0.5.2 lets a logged-in attacker run arbitrary OS commands on the h

CVE-2026-62328 HIGH
8.7 Jul 13

Unauthenticated information disclosure in 9Router (decolua/9router) through version 0.4.41 lets remote attackers read ev

CVE-2026-56679 HIGH
8.7 Jul 15

Authentication bypass in 9Router (AI router & token saver) prior to 0.5.4 lets any authenticated user disable applicatio

CVE-2026-55638 HIGH POC
8.6 Jul 10

Authorization-gate bypass in 9Router (decolua/9router) before 0.5.2 lets a remote unauthenticated attacker reach protect

CVE-2026-63313 HIGH
8.3 Jul 23

Server-side request forgery in 9Router before 0.4.72 lets an authenticated (PR:L) or locally-connected user abuse the /v

CVE-2026-56675 HIGH
8.3 Jul 10

Authentication bypass in 9Router (decolua/9router) versions prior to 0.5.2 lets remote unauthenticated attackers reach p

CVE-2026-56676 HIGH
7.4 Jul 10

Server-side request forgery via DNS rebinding in 9Router (decolua/9router) before 0.5.2 allows an authenticated LLM-prox

Share

CVE-2026-55641 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy