CVE-2026-46339: 9router Unauthenticated Remote Code Execution via Unprotected MCP Custom Plugin Routes
Summary
CVE-2026-46339: 9router: Unauthenticated Remote Code Execution via unprotected MCP custom plugin routes. Affects 9router versions >= 0.4.30, < 0.4.37. Fixed in 0.4.37. How to fix ↓
Check if this vulnerability affects your application
Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.
No signup required · Results in about 60 seconds
Background
9router is an open-source networking tool designed to facilitate various routing functionalities. It allows users to manage network configurations and provides an API for interaction with its features. However, it has been found to expose critical vulnerabilities, particularly in its MCP (Multi-Channel Protocol) custom plugin routes, which can be exploited by attackers to execute arbitrary commands without authentication.
Vulnerability Detail
The vulnerability arises from the inadequate authentication enforcement in the Next.js middleware, which only protects a limited set of routes. Specifically, the routes under '/api/cli-tools/' and '/api/mcp/' lack any authentication checks, allowing attackers to register malicious plugins that can execute arbitrary OS commands. This flaw can lead to severe consequences, including unauthorized access to sensitive data, arbitrary file writes, and potential full system compromise. The vulnerability was introduced in version 0.4.30 and persists in subsequent versions up to 0.4.33.
How To Fix
Latest published version: 0.5.109 as of 23 Oct 2026
npm install 9router@0.5.109
Upgrading to it may include breaking changes; the version below is the minimum fixed release for this vulnerability.
If you need the minimum change
0.4.37
This is the first release that contains the fix.
npm install 9router@0.4.37
Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →
Workaround
As a temporary workaround, users can restrict network access to the vulnerable API endpoints by implementing firewall rules or network policies that block access to port 20128, where the 9router service is running.
Conclusion
The CVE-2026-46339 vulnerability in the 9router package poses a significant risk due to its potential for unauthenticated remote code execution. Users are strongly advised to update to the latest version to mitigate this risk and implement additional security measures as necessary.
See every vulnerability recorded for 9router →
FAQ
CVE-2026-46339 is a critical vulnerability in the 9router package that allows unauthenticated remote code execution through unprotected API endpoints.
You can use Vulert, which monitors open-source vulnerabilities in real-time. By checking your package-lock.json file on the Vulert playground, you can determine if your application is affected by this vulnerability.
The vulnerability can lead to unauthorized access to sensitive data, arbitrary file writes, and complete system compromise, making it critical to address.
You can update the 9router package by running the command 'npm install 9router@0.4.37' in your terminal.
If immediate updating is not possible, restrict access to the vulnerable endpoints using firewall rules or network policies to mitigate the risk.
References
Related vulnerabilities
Recent vulnerabilities recorded for 9router.