Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach multi-tenant console endpoint
-
DeliverySend junk bearer with forged X-Harness-Org/Member headers
-
ExploitConsole attaches internal key
-
ExecutionGateway default 'observe' trusts headers
-
ImpactAccess victim organization's harnesses
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 | Exploitable only when BOTH hold: (1) the HarnessRouter gateway runs the vulnerable pre-0.31.11 default identity mode 'observe' (HR_IDENTITY_MODE unset), where X-Harness-Org/X-Harness-Member headers are trusted even when the accompanying bearer token does not verify; and (2) a front-end console operating in non-self-hosted/multi-tenant mode attaches HARNESS_INTERNAL_KEY to every request carrying an Authorization header, allowing the forged identity headers to reach the gateway with the key. Self-hosted deployments are NOT affected because their entrypoint explicitly sets HR_IDENTITY_MODE=off and the console pins a single organization. Limiting factors: the attacker must be able to send requests through such a console and inject the X-Harness-Org/X-Harness-Member headers alongside any (even invalid) Authorization header; impact is confined to improper cross-tenant authorization with Low confidentiality/integrity/availability consequences. |
| Impact | Signals point to a genuine but moderate, condition-gated issue rather than a top-tier emergency. The vendor CVSS 4.0 base score is 6.3 (medium) with AV:N/AC:H/AT:N/PR:N/UI:N and uniformly Low impact (VC:L/VI:L/VA:L, no scope change), and the description independently states high attack complexity with exploitability 'difficult' - these agree. Exploitation status is 'no public exploit identified at time of analysis' (no CISA KEV entry and no POC in the provided data). No EPSS score and no SSVC decision data were supplied, so automatable/exploitation-maturity signals are UNKNOWN and cannot be weighed. The source diff confirms the real-world risk is narrow: only deployments pairing a non-self-hosted/multi-tenant console (which attaches the internal key to any request bearing an Authorization header) with the pre-patch default identity mode 'observe' are affected, while self-hosted installs ship with mode 'off' and are not. Net: a real, verifiable cross-tenant authorization flaw worth patching for multi-tenant operators, but the AC:H rating, limited Low impact, configuration dependency, and absence of exploitation evidence make it a routine-priority fix, not a drop-everything item. Caveat: PR:N (unauthenticated) is reported, yet exploitation depends on routing through a console in a specific mode - verify your deployment topology rather than treating it as trivially remote. |
| Exploit ScenarioDerived | In a multi-tenant deployment, an attacker sends a request to the front-end console carrying a junk/unverifiable bearer token plus attacker-chosen X-Harness-Org and X-Harness-Member headers. The console (not in self-hosted mode) attaches the internal key, and the pre-0.31.11 gateway default of 'observe' trusts the asserted identity even though the bearer fails verification, letting the attacker act as any organization/member and read that tenant's harnesses. No public POC exists, though the patch's added test suite demonstrates the exact junk-bearer behavior. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 21, 2026
Improper authorization in the HarnessRouter gateway through version 0.31.10 lets a request that carries the internal key plus a non-verifying bearer token assert arbitrary X-Harness-Org and X-Harness-Member identity headers, because the gateway's default identity mode was 'observe' rather than a fail-closed 'enforce'. This enables cross-tenant impersonation of any organization or member, with Low confidentiality, integrity, and availability impact; the attack is remote but rated high complexity and difficult to exploit, and no public exploit code or active exploitation has been identified at time of analysis. HarnessRouter 0.31.11 changes the default to 'enforce' and closes the issue.
RemediationAI
Upgrade the HarnessRouter gateway to 0.31.11 or later (release tag v0.31.11; fix commit 48a26cdf9c4544d2c88d1a07f0777f063f1d753f, pull request https://github.com/HarnessRouter/harnessrouter/pull/426), which flips the unset/unknown default to 'enforce' and fails closed on typos. If immediate upgrade is not possible, explicitly set HR_IDENTITY_MODE=enforce on multi-tenant gateways so that identity headers are rejected when the accompanying bearer token does not verify - the trade-off is that any internal client relying on header identity with a placeholder or invalid bearer will start receiving 401s, so inventory such callers first; alternatively set HR_IDENTITY_MODE=off only for strictly single-tenant self-hosted deployments where the console already pins one organization, understanding that this disables gateway-side identity verification entirely for that deployment. Treat 'observe' as a short-lived migration setting only, never a steady state. Additionally, restrict issuance of HARNESS_INTERNAL_KEY so that front-end consoles only attach it to sessions with a verified token, and rotate the key if forged-identity requests are suspected. Full details and patch references are at https://github.com/HarnessRouter/harnessrouter/security/advisories/GHSA-qrr8-m92f-7vfp and https://vuldb.com/vuln/424708.
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
HarnessRouter is a Python/FastAPI service whose gateway (gateway/app.py) resolves caller identity from the X-Harness-Org and X-Harness-Member headers, gated by an internal key (HARNESS_INTERNAL_KEY) and governed by the HR_IDENTITY_MODE environment variable. Before 0.31.11, HR_IDENTITY_MODE defaulted to 'observe': when a request carried both the internal key and an Authorization header whose bearer token did not verify, the gateway still honored the self-asserted identity headers instead of rejecting the request. Per the upstream advisory (GHSA-qrr8-m92f-7vfp), a console not running in self-hosted mode attaches the internal key to every request bearing an Authorization header, so a junk bearer such as 'Bearer sk-hr-not-a-real-key' could reach the gateway and assert any organization and member. This is CWE-285 (Improper Authorization) - a logic flaw in identity trust decisions rather than a memory-safety or injection bug. The fix maps any unset or unrecognized HR_IDENTITY_MODE value (including typos like 'strict') to 'enforce', keeps 'off' and 'observe' as explicit operator choices, and the self-hosted entrypoint explicitly exports HR_IDENTITY_MODE=off. A regression test (gateway/tests/test_identity_default.py) verifies that under enforce a junk bearer alongside forged identity headers returns 401, while a service sending the key without an Authorization header retains header identity.
Know when Harnessrouter 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:H/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
Dependence on the pre-patch 'observe' default and a specific multi-tenant console topology makes AC:H; no valid credentials are required (a junk bearer suffices) so PR:N; cross-tenant access yields Low C/I/A.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
DescriptionCVE.org
A vulnerability was detected in HarnessRouter up to 0.31.10. This affects an unknown function of the file gateway/app.py of the component Identity Mode. Performing a manipulation of the argument X-Harness-Org/X-Harness-Member results in improper authorization. The attack is possible to be carried out remotely. The attack is considered to have high complexity. The exploitability is reported as difficult. Upgrading to version 0.31.11 mitigates this issue. The patch is named 48a26cdf9c4544d2c88d1a07f0777f063f1d753f. The affected component should be upgraded.
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.
EUVD-2026-107496
GHSA-cjch-h263-r66v
NVD
CVE.org
EPSS
VulDB
Exploit-DB