# CVE-2026-56681: 9Router has an Authentication Bypass in Public LLM API via Spoofable X-9r-Real-Ip Header

Source: https://junglewise.ai/threats/cve-2026-56681-9router-authentication-bypass-in-public-llm-api-via-spoofable-x  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-09-22. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

CVE-2026-56681 · Severity: high · CVSS 7.3 · Published 2026-09-22

9Router is an open-source LLM proxy application that routes AI requests to multiple provider services. An unauthenticated remote attacker can spoof the X-9r-Real-Ip HTTP header to bypass API key authentication and gain unauthorized access to the instance owner's configured LLM provider accounts, including paid API credits and model enumeration capabilities.

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

## Quick answers

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

**How severe is CVE-2026-56681?** High severity, with a CVSS score of 7.3, published 22 September 2026.

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

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

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

**Am I affected by CVE-2026-56681?** 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.8 or later

  ```sh
  npm install 9router@0.5.8
  ```


## Technical details

The vulnerability exists in src/dashboardGuard.js, where the isLocalRequest() function trusts the client-supplied X-9r-Real-Ip header to make authorization decisions. The header is designed to be set only by the trusted custom-server.js wrapper layer (derived from the unspoofable TCP socket address). However, when 9Router is deployed without custom-server.js, Next.js passes the attacker-supplied header through unchanged. An attacker can send a normal request to /api/v1/models (receiving 401 Unauthorized), then re-send with X-9r-Real-Ip: 127.0.0.1 added, causing canAccessPublicLlmApi() to skip the API-key validation and grant access. The attack requires network reachability to the service (default bind 0.0.0.0) but no authentication or user interaction. Consequences include unauthorized consumption of paid LLM provider API credits, financial loss, upstream provider account abuse, and model enumeration. The vulnerability is fixed in version 0.5.8.

## Affected products

- 9Router 9router < 0.5.8

## Identifiers

- CVE-2026-56681
- GHSA-5mj8-gf6m-fhw8

## Timeline

- 2026-09-22: disclosed
- 2026: patched: Fixed in version 0.5.8

## References

- [https://github.com/decolua/9router/security/advisories/GHSA-5mj8-gf6m-fhw8](https://github.com/decolua/9router/security/advisories/GHSA-5mj8-gf6m-fhw8)
- [https://github.com/decolua/9router/commit/efd20be8d81ef2e256a7037f3aa78e6b567b5fd3](https://github.com/decolua/9router/commit/efd20be8d81ef2e256a7037f3aa78e6b567b5fd3)
- [https://github.com/decolua/9router](https://github.com/decolua/9router)
- [https://github.com/decolua/9router/releases/tag/v0.5.6](https://github.com/decolua/9router/releases/tag/v0.5.6)

## 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 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)
- [decolua 9router authentication bypass via Host header spoofing](https://junglewise.ai/threats/cve-2026-49353-decolua-9router-authentication-bypass-via-host-header-spoofing)
