Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessReach open-mode OmniRoute instance
-
DeliverySend unauthenticated POST /api/sync/tokens
-
ExploitReceive sync token (issuedBy "open")
-
ExecutionCall GET /api/sync/bundle with token
-
ImpactExfiltrate decrypted credentials and API keys
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication required for critical functions
MITRE ATT&CK
1 technique across 1 tactic: Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The instance must be running with requireLogin disabled (requireLogin=false, "open mode"). Under that mode only, an unauthenticated caller can POST /api/sync/tokens to mint a sync token (recorded as issuedBy:"open") and then call GET /api/sync/bundle with it to retrieve decrypted provider credentials and plaintext API keys - the same material /api/settings/export-json already refused to anonymous callers. Limiting factor confirmed by the diff: when login is required (the default login-enabled mode), /api/sync/tokens already demanded a dashboard session or the local CLI, so the flaw does not apply there. Additional exposure: tokens issued in open mode persisted and kept opening the bundle even after login was re-enabled, until the 3.8.52 fix invalidates all issuedBy:"open" tokens (operators must re-issue from the dashboard or CLI). |
| Impact | Signals are moderately strong but conditional. The vendor CVSS 4.0 score is 8.2 (High) with a confidentiality-only profile (VC:H, VI:N, VA:N) and the vector carries AT:P (CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N), meaning exploitation depends on an attacker-uncontrolled precondition - here, the instance running with requireLogin disabled. No EPSS score is provided and the CVE is not listed in CISA KEV, so there is no public-scale exploitation signal; exploitation status is 'no public exploit identified at time of analysis' (the references are patch commits, source lines and the VulnCheck advisory, not a working exploit). The vuln.today Decision label is 'this_week', consistent with a serious credential-disclosure bug that is gated behind a specific deployment mode rather than an emergency against default configs. Net: a genuine high-impact issue (full disclosure of decrypted provider credentials and plaintext API keys, with tokens that survive re-enabling login) that is a real priority for any instance deliberately run in open mode, but not a broad internet-wide emergency given the requireLogin=false precondition and the product's niche footprint. Missing data to note explicitly: EPSS is absent and no KEV entry exists, so widespread-exploitation likelihood cannot be quantified from the input. |
| Exploit ScenarioDerived | An attacker able to reach an OmniRoute 3.8.50/3.8.51 instance configured with requireLogin disabled sends an unauthenticated POST to /api/sync/tokens to mint a sync token, then presents that token to GET /api/sync/bundle to download the decrypted provider credentials and plaintext API keys. No public exploit is identified, though the CVE references point to the exact unguarded route. The minted token (issuedBy "open") also keeps working even after login is turned back on, extending the exposure window. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 26, 2026
Missing authentication in OmniRoute 3.8.50 through 3.8.51 lets an unauthenticated remote caller POST to /api/sync/tokens and mint a sync token whenever the instance runs in open mode (requireLogin=false), then spend that token against GET /api/sync/bundle to pull decrypted provider credentials and plaintext API keys - the same material /api/settings/export-json already denies to anonymous callers. The flaw is conditional: when login is enabled (the default), token issuance already required a dashboard session or the local CLI, so only open-mode deployments are reachable, which is why the assessed CVSS:3.1 vector is AV:N/AC:H/PR:N/UI:N with confidentiality-only impact (C:H/I:N/A:N) even though the vendor's CVSS:4.0 score is 8.2. Tokens minted this way were recorded as issuedBy:"open" and kept opening the bundle after login was re-enabled; version 3.8.52 fixes issuance, routing /api/sync/tokens into the always-protected tier and refusing the legacy "open" tokens. No public exploit code was identified at time of analysis and the CVE is not in CISA KEV; priority is this_week.
RemediationAI
Vendor-released patch: upgrade to OmniRoute 3.8.52 (https://github.com/cheaper-inference/OmniRoute/releases/tag/v3.8.52, PR 17053, commit 44a29611bf088e351d8d40eacaabdc1794ed0c61). Upgrading is not sufficient on its own for instances that ran in open mode: 3.8.52 makes validateSyncToken() reject every token recorded as issuedBy:"open", so any sync token minted while login was disabled stops working and must be re-issued from the dashboard or the local CLI after the upgrade - integrations relying on those tokens will break until re-issued. As a compensating control before patching, set requireLogin=true so /api/sync/tokens again demands a dashboard session or the local CLI; this closes the issuance path but does not revoke tokens already minted in open mode, which continued to open /api/sync/bundle after login was re-enabled, so previously issued tokens must be treated as compromised and rotated, and any credentials or API keys exposed in the bundle should be rotated. Additionally, restrict network reachability to /api/sync/tokens and /api/sync/bundle (the bundle route remains token-authenticated by design and is not covered by the always-protected tier), accepting that this limits legitimate remote sync clients.
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
OmniRoute is a Next.js (App Router) application whose management API is gated by a route guard (src/server/authz/routeGuard.ts) that distinguishes a normal protected tier from an ALWAYS_PROTECTED_API_PATHS tier. CWE-306 (Missing Authentication for Critical Function) applies because the POST /api/sync/tokens and DELETE /api/sync/tokens/[id] handlers called requireManagementAuth(request) without the alwaysRequireAuth option, so in open mode (requireLogin=false) the guard degraded to 'anyone' rather than requiring an operator credential. The issued token was typed by an OperatorCredentialKind of "open" in src/lib/sync/issuer.ts, documenting the design assumption that with login disabled every management route is open anyway - an assumption contradicted by /api/settings/export-json, which stayed authenticated in the same mode. validateSyncToken() in src/lib/sync/tokens.ts honoured those records, so possession of an "open" token was sufficient to authenticate GET /api/sync/bundle, the endpoint that returns the decrypted configuration bundle including provider credentials and API keys. The 3.8.52 fix adds alwaysRequireAuth:true to token issuance and revocation, adds /api/sync/tokens to ALWAYS_PROTECTED_API_PATHS (the bundle route itself intentionally stays token-authenticated), and makes validateSyncToken() return null for any record with issuedBy:"open". The trigger for the underlying logic gap is fully described in the upstream diff; no memory-safety or race component is involved.
Know when Omniroute 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:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Unauthenticated network request (AV:N/PR:N/UI:N) but requires the instance to run in requireLogin-disabled mode, an attacker-uncontrolled precondition, so AC:H; full credential disclosure gives C:H with no integrity or availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
OmniRoute 3.8.50 before 3.8.52 contains a missing authentication vulnerability that allows unauthenticated attackers to issue sync tokens via POST /api/sync/tokens when requireLogin is disabled. Attackers can use the issued token against GET /api/sync/bundle to retrieve decrypted provider credentials and plaintext API keys, with tokens persisting after login is re-enabled.
Executive ViewAI
A high-severity flaw in OmniRoute 3.8.50-3.8.51 allows unauthenticated attackers to extract decrypted provider credentials and plaintext API keys from deployments running in open mode (authentication disabled). Organizations that operate OmniRoute without login enabled expose sensitive third-party credentials to direct theft, and tokens minted during that window remain valid after login is re-enabled, extending the exposure. Leadership should care because the impact is unauthorized disclosure of secrets that can be leveraged against downstream providers and cloud services, with potential for follow-on compromise beyond OmniRoute itself.
Apply vendor patch. Until version 3.8.52 is deployed, enable login on open-mode instances (requireLogin=true) to close external reachability, block unauthenticated access to /api/sync/tokens and /api/sync/bundle at the network or reverse-proxy layer, and rotate provider credentials and API keys on any instance that ran in open mode.
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-110063
GHSA-fqp9-jcg9-vhfv
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB