Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to 9router dashboard
-
DeliveryPOST crafted baseUrl to hermes-settings endpoint
-
ExploitInject hooks.post_llm_call into Hermes config.yaml
-
ExecutionHermes Agent runs command after next LLM call
-
ImpactArbitrary 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. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – 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
Affected Packages
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
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
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.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
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
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.
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
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
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.
Unauthenticated CRUD on the provider-management API in 9Router (through 0.4.41) lets remote attackers with no credential
Server-Side Request Forgery (SSRF) in 9Router 0.5.4 and earlier allows unauthenticated remote attackers to probe interna
Authentication bypass in 9Router (npm package '9router') before 0.5.6 lets a remote, unauthenticated attacker reach the
Remote unauthenticated code execution in 9router 0.4.59 (by decolua) lets an attacker chain three flaws - a hardcoded de
Remote authorization bypass in decolua 9router up to version 0.3.47 allows unauthenticated network attackers to access t
Improper restriction of excessive authentication attempts (CWE-307) in the 9Router AI router package (decolua/9router) b
Unauthenticated API key disclosure in 9Router (npm package '9router' by decolua) through version 0.4.41 lets any remote
Authenticated remote code execution in 9Router before 0.5.2 lets a logged-in attacker run arbitrary OS commands on the h
Unauthenticated information disclosure in 9Router (decolua/9router) through version 0.4.41 lets remote attackers read ev
Authentication bypass in 9Router (AI router & token saver) prior to 0.5.4 lets any authenticated user disable applicatio
Authorization-gate bypass in 9Router (decolua/9router) before 0.5.2 lets a remote unauthenticated attacker reach protect
Server-side request forgery in 9Router before 0.4.72 lets an authenticated (PR:L) or locally-connected user abuse the /v
EUVD-2026-96401
GHSA-chcq-pfxc-99ww
NVD
CVE.org
EPSS
Exploit-DB