Summary
CVE-2026-46339 is a critical unauthenticated remote code execution vulnerability (CVSS 10.0) in 9Router, an AI routing and token-saving proxy tool developed by decolua. The flaw exists in the tool’s Next.js middleware (src/proxy.js), which enforces authentication on only a narrow set of explicitly listed routes while leaving the entire /api/cli-tools/* and /api/mcp/* route namespaces completely unprotected — enabling any remote, unauthenticated attacker to register a malicious plugin and execute arbitrary OS commands on the host. The vulnerability affects versions 0.4.30 through 0.4.36 and is fixed in version 0.4.37.
Technical details
- Root cause: The Next.js middleware in
src/proxy.jsenforces authentication checks against only 8 explicitly listed routes. The/api/cli-tools/*and/api/mcp/*namespaces — comprising 40+ routes — receive no authentication whatsoever, classified under CWE-306 (Missing Authentication for Critical Function) and CWE-78 (OS Command Injection). - Trigger conditions: No authentication, special configuration, or user interaction is required. Any attacker with network access to the 9Router instance can exploit this vulnerability immediately.
- Attack chain: Exploitation is a two-request sequence — (1) an unauthenticated POST to
/api/cli-tools/cowork-settingsregisters a maliciouscustomPluginentry with attacker-controlledcommandandargsfields, stored in a process-global registry with no input validation; (2) an unauthenticated GET to/api/mcp/[plugin]/ssetriggersspawn()on the stored command, executing arbitrary OS commands on the host. The full exploit chain completes in under two seconds. - Impact: Arbitrary OS command execution as the process user; full filesystem read and write access enabling exfiltration of stored secrets (API keys, OAuth tokens, cloud credentials, and provider configurations); process termination; and potential container escape if the process user holds Docker group membership.
Affected software
- 9Router (npm package
9router, vendor: decolua): versions 0.4.30 through 0.4.36 (inclusive)
Severity
- CVSS v3.1 Base Score: 10.0 (Critical)
- Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Mitigation and recommended actions
- Immediate action: Upgrade 9Router to version 0.4.37 or later. Version 0.4.37 extends the middleware matcher to enforce authentication on
/api/cli-tools/:path*and/api/mcp/:path*endpoints. - If immediate patching is not feasible: Restrict network-level access to the 9Router instance (default port: 20128) using firewall rules or network controls, permitting only explicitly trusted sources. Note that a known bug in affected versions causes the server to bind to all interfaces (
0.0.0.0) even when--host 127.0.0.1is specified at launch, meaning host-level binding flags alone cannot be relied upon as a compensating control.
IONIX Status
The IONIX research team is tracking ongoing exploitation attempts and recommends immediate patching. Potentially affected assets are outlined in this post.

