# CVE-2026-55641: decolua 9router auth bypass and SSRF via Host header spoofing

Source: https://junglewise.ai/threats/cve-2026-55641-decolua-9router-auth-bypass-and-ssrf-via-host-header-spoofing  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-07-10. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

CVE-2026-55641 · Severity: high · CVSS 8.2 · Published 2026-07-10

9router is an open-source AI router/proxy that manages requests to multiple LLM providers using stored API keys. The application's authentication guard incorrectly determines whether a request is "local" (and thus exempt from API key requirements) by checking the client-controlled Host header instead of the actual TCP peer IP address. Because 9router binds to all network interfaces (`0.0.0.0`) by default, a remote attacker can send a request with `Host: localhost` to bypass authentication entirely. This allows the attacker to relay AI API calls billed to the victim's paid accounts, or to trigger server-side requests to internal/cloud services (SSRF) with JSON responses reflected back.

Technologies: [9router (npm)](https://junglewise.ai/threats/technologies/9router). Vendors: [npm](https://junglewise.ai/threats/vendors/npm).

## Quick answers

**Is CVE-2026-55641 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-55641 being exploited in the wild.

**How severe is CVE-2026-55641?** High severity, with a CVSS score of 8.2, published 10 July 2026.

**Which products and versions are affected?** 9router (npm) < 0.5.2, SEMVER:introduced=0,fixed=0.5.2.

**Is there a fix for CVE-2026-55641?** Yes. 9router (npm): upgrade to 0.5.2 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-55641 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-55641?** Check whether you run 9router (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- 9router (npm): upgrade to 0.5.2 or later

  ```sh
  npm install 9router@0.5.2
  ```


## Technical details

The vulnerability is a Header Spoofing / Authentication Bypass in 9router's `src/dashboardGuard.js` `isLocalRequest()` function. The function checks only the client-supplied `Host` header (via `request.headers.get("host")`) and an optional `Origin` header to decide if a request is local, and never consults the actual socket peer IP address. When `isLocalRequest()` returns true, the `canAccessPublicLlmApi()` gate bypasses all API-key authentication checks on `/v1`, `/v1beta`, `/api/v1`, and `/api/v1beta` endpoints. Combined with two configuration defaults—binding to `0.0.0.0` (DEFAULT_HOST in cli/cli.js) and the absence of `requireApiKey` in DEFAULT_SETTINGS (making handler-level key checks skip by default)—any remote attacker on the network can send `Host: localhost` to reach the handler logic and access configured providers' credentials. The `/v1/search` endpoint with the built-in `searxng` provider (marked `noAuth: true`) additionally allows the attacker to supply `provider_options.baseUrl` in the request body, which is used unsanitized in an outbound `fetch()` call, enabling SSRF. Attack vector is network with no authentication, no user interaction, and no special privileges required.

## Affected products

- decolua 9router <0.5.2

## Identifiers

- CVE-2026-55641
- GHSA-86m2-fcxq-5q7c

## Timeline

- 2026-07-07: disclosed: GitHub Advisory GHSA-86m2-fcxq-5q7c published
- 2026-08-28: advisory: Advisory updated with live confirmation and additional details
- 2026-08-28: patched: Fixed in version 0.5.2

## References

- [https://api.github.com/users/EchoSkorJjj](https://api.github.com/users/EchoSkorJjj)
- [https://github.com/EchoSkorJjj](https://github.com/EchoSkorJjj)
- [https://api.github.com/users/EchoSkorJjj/gists%7B/gist_id%7D](https://api.github.com/users/EchoSkorJjj/gists%7B/gist_id%7D)
- [https://api.github.com/users/EchoSkorJjj/repos](https://api.github.com/users/EchoSkorJjj/repos)
- [https://avatars.githubusercontent.com/u/69960711?v=4](https://avatars.githubusercontent.com/u/69960711?v=4)
- [https://api.github.com/users/EchoSkorJjj/events%7B/privacy%7D](https://api.github.com/users/EchoSkorJjj/events%7B/privacy%7D)

## Related threats

- [9Router has a Login Brute-Force Lockout Bypass via Spoofable X-9r-Real-Ip Header](https://junglewise.ai/threats/cve-2026-56682-9router-login-brute-force-lockout-bypass-via-spoofable-header)
- [9Router has an Authentication Bypass in Public LLM API via Spoofable X-9r-Real-Ip Header](https://junglewise.ai/threats/cve-2026-56681-9router-authentication-bypass-in-public-llm-api-via-spoofable-x)
- [9Router unauthenticated server-side request forgery in OIDC test endpoint](https://junglewise.ai/threats/cve-2026-56677-9router-unauthenticated-server-side-request-forgery-in-oidc-test)
- [decolua 9Router mass assignment in /api/settings](https://junglewise.ai/threats/cve-2026-56679-decolua-9router-mass-assignment-in-api-settings)
- [decolua 9router SSRF and credential forwarding in Kiro API validation](https://junglewise.ai/threats/cve-2026-56678-decolua-9router-ssrf-and-credential-forwarding-in-kiro-api)
