Quick answers
- Is CVE-2026-56682 exploited in the wild?
- No. Junglewise Threat Intelligence has no report of CVE-2026-56682 being exploited in the wild.
- How severe is CVE-2026-56682?
- Medium severity, with a CVSS score of 5.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-56682?
- 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-56682 attacked?
- It is attacked over the network, in a software library.
- Am I affected by CVE-2026-56682?
- 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 is a brute-force protection bypass (CWE-307, CWE-807) in the login rate-limiter. The getClientIp() function in src/lib/auth/loginLimiter.js reads the client IP directly from the X-9r-Real-Ip HTTP header instead of the transport-layer socket address. While the design assumes this header is set only by a trusted custom-server.js wrapper, in deployment modes where Next.js is accessed directly (not through the wrapper), the attacker controls this header. Since the lockout mechanism is per-IP bucket and each distinct header value creates a new bucket, rotating the header value with each password guess keeps every counter below the 5-attempt threshold, bypassing the 30+ second lockout (HTTP 429). Exploitation requires network access to the login endpoint (default bind 0.0.0.0); no authentication or user interaction is needed. A recovered password grants full administrative access to the 9Router dashboard and its APIs. The issue is fixed in version 0.5.8 by deriving the rate-limit key from req.socket.remoteAddress instead of the header.
Affected products
- decolua 9Router 0.5.4 and earlier; fixed in 0.5.8
Identifiers
- CVE-2026-56682
- GHSA-32gc-64m7-hj7v
Timeline
- 2026-09-22: disclosed: GHSA-32gc-64m7-hj7v published on GitHub Security Advisory database
- 2026-09-22: patched: Fix released in 9Router version 0.5.8 (commit efd20be8d81ef2e256a7037f3aa78e6b567b5fd3)