Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDiscover exposed 9Router API
-
DeliveryPOST crafted sudoPassword to /api/tunnel/tailscale-install
-
ExploitBypass middleware, reach 'sudo -S sh'
-
Executionsudo does not prompt, sh runs input as command
-
ImpactExecute arbitrary commands as root
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization OS command sanitization, avoid shell exec
MITRE ATT&CK
2 techniques across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires reaching the unauthenticated POST /api/tunnel/tailscale-install endpoint over the network (this specific route is not covered by the dashboard middleware matcher, so no authentication is needed) and supplying a crafted sudoPassword body field. The concrete limiting factor is the sudo state on the host: command execution only occurs when 'sudo -S sh' does NOT prompt for a password - i.e., the 9Router process already runs as root, sudoers has NOPASSWD for it, or a recent sudo timestamp cache is valid. On hardened deployments where sudo genuinely requires an uncached password, the injected value is consumed as a (wrong) password and code execution does not occur, which is the AT:P attack requirement reflected in the CVSS 4.0 vector. |
| Impact | This is a genuine high-priority issue rather than an inflated CVSS number: the CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N) describes network-reachable, low-complexity, unauthenticated exploitation with high confidentiality, integrity and availability impact, and code execution occurs as root. The single mitigating signal is AT:P (attack requirement present): exploitation only yields command execution when sudo does not prompt for a password (root context, NOPASSWD, or cached sudo timestamp), which is why the score is 9.2 rather than a full 10. Real-world urgency is elevated by exploitation evidence observed by the Shadowserver Foundation on 2026-07-04, indicating opportunistic scanning/exploitation against exposed instances. No EPSS score, SSVC decision, or explicit CISA KEV flag was provided in the input, so the exploitation-probability and formal automatable/decision signals are UNKNOWN here; the Shadowserver observation is the strongest exploitation signal available and should be treated as active targeting even though it is not a CISA KEV confirmation. |
| Exploit ScenarioDerived | An attacker scanning the internet for exposed 9Router dashboards sends a single crafted POST to /api/tunnel/tailscale-install with a sudoPassword body value containing shell metacharacters/commands. Because the route bypasses the dashboard authorization middleware and the underlying 'sudo -S sh' does not prompt (the service runs as root or has cached/NOPASSWD sudo), the injected string is executed by sh as root, giving full command execution with no authentication or user interaction. The low complexity and network vector make this trivially scriptable, consistent with the scanning activity Shadowserver reported on 2026-07-04. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 07, 2026
Remote unauthenticated OS command injection in 9Router before 0.4.44 lets attackers run arbitrary commands as root via the POST /api/tunnel/tailscale-install endpoint, which is excluded from the dashboard authorization middleware. The attacker-supplied sudoPassword field is piped to the stdin of a 'sudo -S sh' child process; when sudo does not prompt for a password, sh interprets that value as a shell command. Active exploitation evidence was reported by the Shadowserver Foundation on 2026-07-04; this is not (yet) listed in CISA KEV, and no public exploit code is referenced in the supplied data.
RemediationAI
Upgrade to 9Router 0.4.44 or later - Vendor-released patch: 0.4.44 - per GitHub advisory GHSA-g6g7-pvmx-m74p (https://github.com/decolua/9router/security/advisories/GHSA-g6g7-pvmx-m74p) and the VulnCheck advisory (https://www.vulncheck.com/advisories/9router-os-command-injection-via-sudopassword-parameter-in-tailscale-install-endpoint). If immediate patching is not possible, block or restrict network access to the /api/tunnel/tailscale-install endpoint at a reverse proxy or firewall (deny unauthenticated external access to the 9Router API/dashboard port), which prevents remote reach but will also break the Tailscale-install workflow. Reduce the impact of the sudo path by ensuring the 9Router service does not run as root and removing any NOPASSWD sudoers entry it relies on, and shorten or disable the sudo timestamp cache (timestamp_timeout=0) so a cached credential cannot be abused - note this may break other automation that depended on passwordless sudo. Because active exploitation has been observed, also inspect exposed hosts for post-exploitation activity rather than relying on mitigation alone.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
9Router is an open-source tunneling/router management application (decolua/9router) that exposes an HTTP API and dashboard. The flawed route, /api/tunnel/tailscale-install, is intended to install Tailscale by elevating privileges through 'sudo -S sh', reading the sudo password from stdin. The root cause is CWE-78 (Improper Neutralization of Special Elements used in an OS Command): rather than being consumed solely as a password, the sudoPassword body field flows into the stdin of an interactive shell ('sh'). Compounding this, the route path is not matched by the dashboard middleware matcher, so no authentication or authorization is enforced before the privileged command path is reached. When sudo returns without prompting - because the process already runs as root, NOPASSWD is set in sudoers, or a recent sudo timestamp cache is valid - the string that was meant to be a password is instead read by sh as a command line.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Network, unauthenticated (PR:N/UI:N) with root-level C/I/A impact, but AC:H because execution requires the non-default sudo condition (root/NOPASSWD/cached timestamp); no scope change so S:U.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
Lifecycle Timeline
1DescriptionCVE.org
9Router before 0.4.44 contains an OS command injection vulnerability in the unauthenticated POST /api/tunnel/tailscale-install endpoint (this route is not covered by the dashboard middleware matcher, so no authorization check is applied). The sudoPassword field from the request body is written to the stdin of a 'sudo -S sh' child process. When sudo does not prompt for a password (the process runs as root, NOPASSWD is configured, or a recent sudo timestamp cache exists), the sudoPassword value is interpreted by sh as a shell command, allowing a remote unauthenticated attacker to execute arbitrary OS commands. Exploitation evidence was first observed by the Shadowserver Foundation on 2026-07-04 (UTC).
Executive ViewAI
A critical remote code execution vulnerability in 9Router (versions before 0.4.44) allows unauthenticated attackers to execute arbitrary commands with root privileges (CVSS 9.2), with exploitation activity reported by the Shadowserver Foundation. No vendor patch is currently available. Any organization using 9Router faces immediate and severe risk of complete infrastructure compromise.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Network segmentation to isolate 9Router systems from critical infrastructure; (2) Firewall and WAF rules blocking POST requests to /api/tunnel/tailscale-install; (3) Disable the endpoint if not operationally required; (4) Implement IP-based access controls restricting who can reach the API; (5) Deploy IPS signatures detecting exploitation attempts; (6) Enable comprehensive audit logging for all 9Router API and system activity; (7) Increase monitoring for indicators of unauthorized root-level command execution and system compromise.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
OS command injection occurs when an application passes unsanitized user input directly into system shell commands.
EUVD-2026-42073
GHSA-g6g7-pvmx-m74p
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB