CVE-2026-59800 9Router < 0.4.44 - OS Command Injection via sudoPassword Parameter in Tailscale Install Endpoint
Unauthenticated attackers can execute arbitrary OS commands via the sudoPassword parameter in the Tailscale install endpoint when sudo does not prompt for a password.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2026-59800?
CVE-2026-59800 is a critical command injection vulnerability in decolua 9router, published on 7 Jul 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
Official description
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).
Weakness: CWE-78
Which versions are affected by CVE-2026-59800?
2 open source packages ship an affected version, including 9router.
| Package | Affected | Fixed in |
|---|---|---|
9router npm | All versions | 0.4.44 |
9router npm | All versions | 0.4.44 |
How do I fix CVE-2026-59800?
Upgrade 9router to 0.4.44 or later.
Upgrade, and pass arguments to programs as a list instead of through a shell. More about Command injection.
Is CVE-2026-59800 being exploited?
It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-59800 exists.
Sources
Also known as GHSA-g6g7-pvmx-m74p.