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
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