Quick answers
- Is CVE-2026-46339 exploited in the wild?
- No. Junglewise Threat Intelligence has no report of CVE-2026-46339 being exploited in the wild.
- How severe is CVE-2026-46339?
- Critical severity, with a CVSS score of 10, published 15 July 2026.
- Which products and versions are affected?
- 9router (npm) >= 0.4.30, < 0.4.37, SEMVER:introduced=0.4.30,fixed=0.4.37.
- Is there a fix for CVE-2026-46339?
- Yes. 9router (npm): upgrade to 0.4.37 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
- How is CVE-2026-46339 attacked?
- It is attacked over the network, in a network appliance.
- Am I affected by CVE-2026-46339?
- 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.4.37 or later
npm install 9router@0.4.37
Technical details
The vulnerability stems from a narrow allowlist in the Next.js middleware (src/proxy.js) which fails to protect the /api/cli-tools/* and /api/mcp/* routes. An unauthenticated attacker can chain two requests to achieve RCE: first, a POST request to /api/cli-tools/cowork-settings to register a 'customPlugin' with an arbitrary OS command and arguments; second, a GET request to /api/mcp/[plugin]/sse to trigger the 'spawn()' function in the MCP bridge (src/lib/mcp/stdioSseBridge.js). Because the application does not validate the command or arguments before execution, the attacker can gain a reverse shell or perform arbitrary file operations. The issue is fixed in version 0.4.37 by extending the middleware authentication matcher.
Affected products
- decolua 9router >= 0.4.30, < 0.4.37
Identifiers
- CVE-2026-46339
- GHSA-fhh6-4qxv-rpqj
Timeline
- 2026-05-13: patched: Fix released in version 0.4.37
- 2026-07-15: advisory: GHSA-fhh6-4qxv-rpqj published