Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify network-reachable 9router HTTP service
-
DeliveryCraft HTTP request targeting protected API or dashboard path
-
ExploitSet Host header to localhost or 127.0.0.1
-
ExecutionSubmit request to bypass isLocalRequest() check in isAuthenticated()
-
ImpactAccess protected administrative or API resources without valid JWT
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization verification
MITRE ATT&CK
1 technique across 1 tactic: Defense Evasion The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires network-level reachability to the 9router HTTP service port on a host running version 0.4.0 or earlier. The attacker must supply a Host header value of localhost, 127.0.0.1, or ::1 in the HTTP request - no other special configuration or feature flag is required for the bypass to trigger. The CVSS PR:L rating indicates low privileges are required; however, the mechanism of the bypass is to circumvent authentication, so teams should verify with the vendor or by testing whether any credential is actually needed before the Host-spoofed request is accepted - this inconsistency is not fully resolved by the available data. Exploitation is limited to 9router instances reachable from untrusted networks; instances whose HTTP port is exclusively bound to loopback (127.0.0.1) without any reverse proxy forwarding external traffic are not exploitable from remote. No non-default application configuration is required. |
| Impact | The CVSS 6.3 Medium score reflects network reachability (AV:N), low complexity (AC:L), low required privileges (PR:L), no user interaction (UI:N), and limited per-component impact (C:L/I:L/A:L with unchanged scope). The PR:L rating warrants scrutiny: the primary bypass mechanism circumvents JWT authentication, yet the scorer assigned low rather than no privileges - teams should verify with the vendor whether any credential is truly required prior to sending the Host-spoofed request or whether PR:L reflects the scorer's conservative judgment. No EPSS score was included in the provided intelligence, so exploitation probability cannot be quantified. The CVE is not in CISA KEV, and no public exploit code has been identified, reducing immediate urgency. However, the Host header spoofing technique is elementary - requiring only standard HTTP tooling - meaning attack complexity is effectively trivial once a reachable instance is found. Real-world risk is moderate: impact is bounded to the 9router application scope (S:U), with no lateral privilege escalation indicated. Instances exposed to untrusted networks should prioritize patching above what the CVSS alone suggests due to the low-skill exploitation technique. |
| Exploit ScenarioDerived | An attacker with network access to a 9router instance sends an HTTP request to a protected endpoint such as one listed in PROTECTED_API_PATHS, including the header Host: localhost in the request. The vulnerable isLocalRequest() function evaluates this header, returns true, and the isAuthenticated() function skips JWT validation, granting the attacker access to sensitive dashboard or administrative API functionality without valid credentials. No public exploit code has been identified, but the technique requires only curl or equivalent standard HTTP tooling. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 01, 2026
Improper authorization in decolua 9router through version 0.4.0 allows remote attackers with low privileges to bypass JWT authentication by manipulating the HTTP Host header, gaining unauthorized access to protected dashboard and API endpoints. The vulnerable isLocalRequest() function in dashboardGuard.js blindly trusted the client-supplied Host header to determine whether a request originated from localhost, enabling any network-reachable attacker to spoof local origin by sending Host: localhost. No public exploit code or CISA KEV listing exists at time of analysis; vendor-released patch v0.4.1 is available and confirmed.
RemediationAI
Upgrade decolua 9router to version 0.4.1 immediately; this is the vendor-confirmed fix available at https://github.com/decolua/9router/releases/tag/v0.4.1 with patch details at https://github.com/decolua/9router/commit/428e2c045cb9c0eb8080e8b580471a9c2eaa95ca. If immediate upgrade is not feasible, restrict network access to the 9router HTTP interface via firewall rules or reverse proxy ACLs so that only trusted IP ranges can reach the service port - note this is a compensating control only and does not fix the underlying trust issue in the application code. Do not attempt to mitigate this vulnerability by blocking specific Host header values at a WAF or proxy layer alone, as the control surface is large and bypass variants are trivial. Avoid relying on network-level localhost binding as a security boundary unless the 9router process is confirmed to accept connections exclusively on 127.0.0.1 with no reverse proxy forwarding external requests.
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 component is dashboardGuard.js within decolua 9router (CPE: cpe:2.3:a:decolua:9router:*:*:*:*:*:*:*:*), a JavaScript-based HTTP routing application. The root cause is CWE-285 (Improper Authorization): the now-removed isLocalRequest() function extracted a hostname from the client-controlled HTTP Host header and compared it against the strings localhost, 127.0.0.1, and ::1. Because HTTP clients set arbitrary Host values, this locality check offered no security guarantee - it was a trust boundary violation, not a real network origin check. The isAuthenticated() function used this result to bypass JWT validation for certain always-protected and requireLogin-gated endpoint categories. The fix in commit 428e2c0 eliminates isLocalRequest() entirely and introduces a machine-ID-derived HMAC token transmitted via the x-9r-cli-token header, which cannot be forged by remote clients without knowledge of the server's machine ID and the CLI_TOKEN_SALT constant.
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:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
Primary rating from Vendor (VulDB) · only source for this CVE.
CVSS VectorVendor: VulDB
Lifecycle Timeline
1DescriptionCVE.org
A security vulnerability has been detected in decolua 9router up to 0.4.0. This issue affects the function isAuthenticated of the file src/dashboardGuard.js of the component HTTP Header Handler. The manipulation of the argument Host leads to improper authorization. The attack is possible to be carried out remotely. Upgrading to version 0.4.1 is capable of addressing this issue. The identifier of the patch is 428e2c045cb9c0eb8080e8b580471a9c2eaa95ca. Upgrading the affected component is recommended.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
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-33685
GHSA-rj93-2986-gmf9
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB