Skip to main content

9router CVE-2026-108593

| EUVDEUVD-2026-96401 HIGH
Code Injection (CWE-94)
2026-10-10 VulnCheck GHSA-chcq-pfxc-99ww
7.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate to 9router dashboard
  2. Delivery
    POST crafted baseUrl to hermes-settings endpoint
  3. Exploit
    Inject hooks.post_llm_call into Hermes config.yaml
  4. Execution
    Hermes Agent runs command after next LLM call
  5. Impact
    Arbitrary code execution on host

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK

2 techniques across 2 tactics: Execution, Initial Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an authenticated 9router dashboard account with privileges to call POST /api/cli-tools/hermes-settings (PR:H) - the flaw is not reachable by unauthenticated attackers. The attacker must supply a baseUrl value containing double quotes and newline characters to break out of the intended field and inject the hooks_auto_accept flag and a hooks.post_llm_call shell command into the Hermes Agent config.yaml. Code execution does not occur immediately: it is gated on the Hermes Agent subsequently performing an LLM call (UI:P/AT:P), at which point the injected post_llm_call command runs without approval. Limiting factors: valid high-privilege dashboard credentials, a reachable/exposed dashboard, and an agent that actually issues an LLM call to trigger the payload.

Impact

This is a genuine remote code execution issue (CWE-94 configuration/code injection) but its real-world priority is tempered by several gating factors. The CVSS 4.0 vector (CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:P, score 7.3, HIGH) is internally consistent with the description: network-reachable HTTP endpoint (AV:N), but requiring high privileges (PR:H - an authenticated dashboard user), a passive user-interaction/attack-requirement condition (UI:P/AT:P - the injected shell command only fires after the Hermes Agent performs an LLM call), yielding full high impact to confidentiality, integrity and availability of the vulnerable system (VC:H/VI:H/VA:H) with no scope change (SC:N/SI:N/SA:N). No EPSS score, no CISA KEV listing, and no explicit POC flag were provided in the input, so there is no signal of active or probable exploitation; however, the references include a detailed hackMD technical write-up and line-level source pointers, which materially lowers the bar to reproduce. The signals are coherent rather than conflicting - this is a real, patch-worthy RCE, but it is an authenticated post-exploitation / privilege-to-RCE vector in a niche product, not a mass-exploitable internet-facing bug. Net: moderate priority, highest for operators who expose the 9router dashboard to untrusted or multi-tenant users.

Exploit ScenarioDerived

An attacker who already holds authenticated access to the 9router dashboard (e.g., a low-trust tenant or a compromised dashboard credential) sends a POST to /api/cli-tools/hermes-settings with a baseUrl value containing embedded double quotes and newlines. This injects hooks_auto_accept and a hooks.post_llm_call shell command into the Hermes Agent config.yaml, and the next time the agent performs an LLM call the injected command executes on the host without approval. A public hackMD technical write-up with source-line references exists, so reproduction is realistic, though no packaged exploit code was indicated in the input.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 10, 2026

Configuration injection in 9router 0.4.1 through 0.5.99 lets an authenticated dashboard user with access to the Hermes settings endpoint insert arbitrary keys into the Hermes Agent config.yaml, ultimately enabling shell command execution after an LLM call. The attacker submits a crafted baseUrl containing double quotes and newlines to set hooks_auto_accept and a hooks.post_llm_call command, so Hermes Agent runs the injected command without approval once it makes an LLM call. Exploitation requires high-privilege dashboard access and the agent must subsequently perform an LLM call; no public exploit was identified at time of analysis.

RemediationAI

No vendor-released patch was identified in the provided intelligence, so remediation should begin with compensating controls while monitoring the vendor GitHub repository and VulnCheck advisory for an update. Restrict access to the 9router dashboard and specifically to POST /api/cli-tools/hermes-settings to trusted administrators only, because the issue requires a high-privilege authenticated account; enforce strong authentication and MFA for those accounts. If the Hermes settings integration is not required, disable or block that endpoint at the reverse proxy, noting that legitimate Hermes configuration changes will stop working. Review and monitor Hermes Agent config.yaml for unexpected hooks_auto_accept or hooks.post_llm_call entries, and consider disabling Hermes post-LLM-call hooks or auto-accept behavior to prevent injected commands from executing, with the trade-off that legitimate automation hooks will also be disabled. Because execution depends on the agent making an LLM call, temporarily pausing Hermes Agent LLM activity can interrupt the trigger path, but this affects normal agent functionality. Refer to https://www.vulncheck.com/advisories/9router-0.4.1-through-0.5.99-config-injection-rce-via-hermes-settings-endpoint and the vendor source references for updates.

Affected VersionsENISA

9router 0.4.1 ≤0.5.99

Affected Packages

euvd 9router no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The affected product is decolua 9router, identified by CPE cpe:2.3:a:decolua:9router. The vulnerability is CWE-94 (improper control of generation of code or code injection) rooted in the POST /api/cli-tools/hermes-settings handler, specifically the code paths around route.js lines 20-35 and 185-223. The endpoint accepts user-controlled settings, including baseUrl, and writes them into Hermes Agent's config.yaml without adequately neutralizing YAML-special characters. By embedding double quotes and newline characters in baseUrl, an authenticated user can terminate the intended scalar value and inject new YAML mapping entries such as hooks_auto_accept and a hooks.post_llm_call shell command. Hermes Agent later consumes this configuration and, after an LLM call, executes the injected post_llm_call command without an approval prompt. The primary risk is not immediate code execution at request time but delayed execution gated on the agent's subsequent LLM activity.

Know when 9Router gets its next vulnerability

  • 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

Vendor (VulnCheck) PRIMARY 7.3 HIGH
CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
vuln.today AI 6.8 MEDIUM

Network HTTP endpoint (AV:N) but needs an authenticated high-privilege dashboard user (PR:H) and a subsequent LLM call to trigger the hook (UI:R); full host compromise gives C/I/A:H with no scope change.

3.1 AV:N/AC:L/PR:H/UI:R/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:P/PR:H/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
High
User Interaction
Passive
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

9router 0.4.1 through 0.5.99 contains a configuration injection vulnerability in the POST /api/cli-tools/hermes-settings endpoint that allows authenticated dashboard users to inject arbitrary keys into the Hermes Agent config.yaml file. Attackers can submit a baseUrl containing double quotes and newlines to add hooks_auto_accept and a hooks.post_llm_call shell command, which Hermes Agent executes without approval after an LLM call.

Executive ViewAI

Why It Matters

A configuration-injection flaw in 9router versions 0.4.1 through 0.5.99 allows someone who already holds privileged access to the Hermes settings dashboard to embed hidden directives in the Hermes Agent configuration, causing the agent to execute operating-system commands on its host the next time it contacts a language model. Because the end result is arbitrary code execution on the systems brokering AI traffic, any environment running these versions should treat affected hosts as potentially compromised until configuration is verified. No public exploit code and no vendor patch were identified at time of analysis, so exposure is concentrated where dashboard privileges are broadly granted or weakly governed.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: restrict the Hermes settings endpoint to a minimal set of trusted administrators and require MFA; validate or block double quotes and newlines in baseUrl input via application or WAF rules; disable hooks_auto_accept and hooks.post_llm_call hooks; make config.yaml read-only to the 9router service account with file-integrity monitoring and alerting; log and review all configuration changes; and restrict outbound network access from AI agent hosts to reduce post-exploitation reach.

Threat Intelligence Overview

EPSS Score
0.3%
Top 83% exploitable
Prevalence
Rare
obscure single-maintainer open-source agent router, tiny production footprint
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact
High

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

CVE-2026-59801 CRITICAL POC
9.3 Jul 13

Unauthenticated CRUD on the provider-management API in 9Router (through 0.4.41) lets remote attackers with no credential

CVE-2026-56677 HIGH POC
8.6 Aug 17

Server-Side Request Forgery (SSRF) in 9Router 0.5.4 and earlier allows unauthenticated remote attackers to probe interna

CVE-2026-56681 HIGH POC
7.3 Sep 22

Authentication bypass in 9Router (npm package '9router') before 0.5.6 lets a remote, unauthenticated attacker reach the

CVE-2026-63732 CRITICAL
9.4 Jul 23

Remote unauthenticated code execution in 9router 0.4.59 (by decolua) lets an attacker chain three flaws - a hardcoded de

CVE-2026-5842 MEDIUM POC
5.5 Apr 09

Remote authorization bypass in decolua 9router up to version 0.3.47 allows unauthenticated network attackers to access t

CVE-2026-56682 MEDIUM POC
5.3 Sep 22

Improper restriction of excessive authentication attempts (CWE-307) in the 9Router AI router package (decolua/9router) b

CVE-2026-62327 CRITICAL
9.3 Jul 13

Unauthenticated API key disclosure in 9Router (npm package '9router' by decolua) through version 0.4.41 lets any remote

CVE-2026-62312 HIGH
8.8 Jul 15

Authenticated remote code execution in 9Router before 0.5.2 lets a logged-in attacker run arbitrary OS commands on the h

CVE-2026-62328 HIGH
8.7 Jul 13

Unauthenticated information disclosure in 9Router (decolua/9router) through version 0.4.41 lets remote attackers read ev

CVE-2026-56679 HIGH POC
8.7 Jul 15

Authentication bypass in 9Router (AI router & token saver) prior to 0.5.4 lets any authenticated user disable applicatio

CVE-2026-55638 HIGH POC
8.6 Jul 10

Authorization-gate bypass in 9Router (decolua/9router) before 0.5.2 lets a remote unauthenticated attacker reach protect

CVE-2026-63313 HIGH
8.3 Jul 23

Server-side request forgery in 9Router before 0.4.72 lets an authenticated (PR:L) or locally-connected user abuse the /v

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy