CVE-2026-55638: decolua 9router auth bypass via /codex rewrite

CVE-2026-55638 · Severity: high · CVSS 8.6 · Published 2026-07-10

9router is a proxy service that provides an OpenAI/Anthropic-compatible LLM (large language model) interface, designed to be protected by API-key authentication. However, a flaw in how the application handles URL rewrites allows unauthenticated attackers to bypass the API-key check by sending requests to the `/codex/*` endpoint instead of the protected `/api/v1/*` endpoint. This allows attackers to use the service operator's credentials to make LLM API calls, consume their provider credits, and incur unexpected billing charges.

Technologies: 9router (npm). Vendors: npm.

Quick answers

Is CVE-2026-55638 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-55638 being exploited in the wild.
How severe is CVE-2026-55638?
High severity, with a CVSS score of 8.6, 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-55638?
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-55638 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-55638?
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
    npm install 9router@0.5.2

Technical details

This is an authorization bypass vulnerability in 9router's Next.js middleware logic. The vulnerability stems from a timing mismatch in the request authorization flow: the middleware in `src/dashboardGuard.js` evaluates whether a request requires an API key based on the original request path before Next.js URL rewrites are applied. The protected prefix list includes `/v1`, `/v1beta`, `/api/v1`, and `/api/v1beta`, but excludes `/codex`. The `next.config.mjs` configuration contains a rewrite rule mapping `/codex/:path*` to `/api/v1/responses`. When an attacker sends a POST request to `/codex/x`, the middleware allows it to pass (because `/codex` is not protected), and the request is then rewritten to `/api/v1/responses` where it is processed by the chat handler using the operator's stored LLM provider API keys. The vulnerability is network-accessible with no authentication required and no user interaction needed. A patch is available in version 0.5.2.

Affected products

  • decolua 9router < 0.5.2

Identifiers

  • CVE-2026-55638
  • GHSA-8gmq-j984-vp4r

Timeline

  • 2026-07-07: disclosed
  • 2026-07-10: patched: patch released in v0.5.2
  • 2026-08-28: advisory

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.