Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as low-privilege Termix user
-
ExploitEnumerate credentialId/targetHostId integers via deploy-to-host
-
ExecutionRead differential errors to confirm records and authType
-
ImpactTrigger outbound SSH attempt to victim host with attacker key
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Object-level authorization, IDOR prevention
|
| Exploitation Conditions | Requires an authenticated Termix account (PR:L) with access to the POST /credentials/:id/deploy-to-host endpoint on any instance running versions 1.7.0 through 2.5.0. No user interaction, special configuration, or admin privileges are needed - any logged-in user can enumerate other users' credential and host record IDs. Exploitation is LIMITED to information disclosure of record existence and authType plus triggering a (non-authenticating) outbound SSH attempt with the attacker's public key; encrypted passwords and private keys remain protected and are never disclosed, capping real-world impact. |
| Impact | This is a genuine but low-severity issue, consistent with its CVSS 3.1 base score of 4.3 (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N). The vector requires an authenticated Termix user (PR:L) but no user interaction, and the impact is limited to confidentiality (C:L) - the flaw is a classic CWE-639 IDOR/BOLA where the deploy-to-host endpoint trusts attacker-supplied credentialId/targetHostId integers without ownership checks. No EPSS score, KEV listing, or public POC is present in the input, so there is no signal of active or imminent exploitation. Importantly, the vendor advisory explicitly states encrypted passwords and private keys are NOT disclosed; the leak is limited to record existence, the authType field, and the ability to trigger an outbound SSH connection attempt to a victim host using the attacker's own public key (which cannot authenticate). No SSVC decision data was provided. The 'Authentication Bypass' tag overstates the issue - this is broken object-level authorization by an already-authenticated user, not an auth bypass. Net: a real, patch-worthy access-control defect, but not a priority for emergency remediation. |
| Exploit ScenarioDerived | An authenticated low-privilege Termix user sends POST /credentials/:id/deploy-to-host requests iterating over sequential credentialId and targetHostId integers belonging to other users. Differential error responses reveal which credential and host records exist and expose each record's authType, and against a key-authenticated victim host the server initiates an outbound SSH connection attempt carrying the attacker's public key. No public exploit code is identified at time of analysis; the technique is trivial (simple ID enumeration) but yields only metadata, not credential contents. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 24, 2026
Authenticated Termix users can abuse the POST /credentials/:id/deploy-to-host endpoint to reach other users' credential and host records, because the server resolves attacker-supplied credentialId and targetHostId integers without verifying ownership. On instances running 1.7.0 through 2.5.0, this yields limited information disclosure (whether a record exists and its authType) and lets an attacker cause a victim host that authenticates by key to make an outbound SSH connection attempt using the attacker's public key; encrypted passwords and private keys are never exposed, keeping impact consistent with the assessed CVSS 3.1 base score of 4.3 (AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N). No public exploit identified at time of analysis, and the vendor fixed the authorization check in version 2.5.1.
RemediationAI
Upgrade to Termix 2.5.1 or later - the vendor-released fix is published as release-2.5.1-tag and the patch is visible in commits b0598294a6aeed866f51ce58067f43c1d751c7a6 and ddbdd5c437c2296607dfaa4265d6f63fbc1ca92e (pull request Termix-SSH/Termix#1067), which add the missing userId ownership predicates to both the credential and host lookups; the advisory at https://github.com/Termix-SSH/Termix/security/advisories/GHSA-w4cf-69fj-g96f should be consulted for the authoritative version matrix. If immediate upgrade is not possible, restrict the deploy-to-host workflow to trusted administrators only (for example by gating the route behind an elevated role or an authenticated reverse-proxy rule that limits POST /credentials/:id/deploy-to-host to a known admin source range) - the trade-off is that ordinary users lose the automated credential deployment feature. Additionally, constrain outbound SSH egress from the Termix server with a destination allowlist so that attacker-influenced deployment attempts cannot reach arbitrary internal hosts, accepting that legitimate deployments to newly added hosts will require allowlist updates. Monitor Termix and host SSH logs for deployment attempts referencing credential or host IDs that do not belong to the requesting account, since the differential error responses and unexpected authType lookups are detectable signals; note that rotating credentials is not strictly required because encrypted passwords and private keys are not disclosed, but operators in multi-tenant deployments may still wish to verify that no unexpected public keys were introduced on managed hosts.
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 root cause is CWE-639 (Authorization Bypass Through User-Controlled Key), the classic insecure direct object reference pattern: request parameters are trusted as database lookup keys without being scoped to the authenticated principal. Termix's backend (src/backend/database/routes/credential-deploy-routes.ts, referred to as credentials.ts in the advisory) builds Drizzle ORM queries such as eq(sshCredentials.id, credentialId) and eq(hosts.id, targetHostId), so any logged-in user can supply another tenant's integer IDs and have the corresponding rows loaded. The upstream fix wraps both lookups in and(eq(<table>.id, <id>), eq(<table>.userId, userId)), adding the missing ownership predicate; this is a pure server-side authorization change with no schema or protocol modification. The endpoint is part of Termix's credential deployment workflow, which performs outbound SSH to managed hosts. Because error responses differ between 'record not found' and 'record found', the endpoint acts as an oracle for record existence and leaks the authType field of each record; the actual secret material (encrypted passwords and private keys) is not returned to the caller. The secondary effect is that a target host configured with key authentication receives an SSH connection attempt during deployment, carrying the attacker's supplied public key rather than the legitimate credential - the connection cannot authenticate as the victim, but it does generate attacker-induced traffic from the victim host. The CPE cpe:2.3:a:termix-ssh:termix:*:*:*:*:*:*:*:* confirms the affected product is the Termix SSH web management platform itself, with the version range bounded by the advisory rather than by the wildcarded CPE. Authentication requirements are confirmed as authenticated but non-privileged: the CVSS vector contains PR:L, meaning any valid low-privilege account suffices, and there is no UI:R or AC:H condition.
Know when Termix 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
AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
Network endpoint reachable by any authenticated user (PR:L) with no interaction; leaks only record existence/authType metadata (C:L), no integrity or availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
Termix is a web-based server management platform with SSH terminal, tunneling, and file editing capabilities. From 1.7.0 until 2.5.1, the POST /credentials/:id/deploy-to-host endpoint resolves credential and target-host records from attacker-controlled credentialId and targetHostId integer values without checking that either record belongs to the requesting user. In src/backend/database/routes/credentials.ts, differential errors reveal whether credential and host records exist and disclose each record's authType value. Properly encrypted passwords and keys are not disclosed, but a key-authenticated victim host can receive an outbound SSH connection attempt using the attacker's public key. This issue is fixed in version 2.5.1.
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
Unauthenticated attackers can retrieve stored SSH host credentials - including addresses, usernames, and passwords - fro
Stored XSS in Termix File Manager (versions 1.7.0-1.9.0) allows attackers with SSH server access to execute arbitrary Ja
Remote command execution in Termix web-based server management platform (versions prior to 2.3.2) allows any authenticat
Remote code execution in Termix (self-hosted web-based server management platform) before version 2.1.0 lets an authenti
OS command injection in Termix (self-hosted web SSH/tunneling platform) before 2.3.2 lets an authenticated user who can
OS command injection in Termix web-based server management platform prior to version 2.3.2 allows remote unauthenticated
Cross-user SSH credential disclosure in Termix, a self-hosted web server-management platform, allows an authenticated lo
Broken authorization in Termix (self-hosted web-based SSH/server management platform) before 2.6.1 lets any authenticate
Command injection in Termix 2.4.1 through 2.5.0 lets an authenticated administrator execute arbitrary operating-system c
Cross-tenant remote code execution in Termix (web-based SSH/file management platform) prior to version 2.3.2 allows an a
Command injection in Termix server management platform before version 2.3.2 allows authenticated users to execute arbitr
Remote command injection in Termix, a web-based SSH server management platform, allows any authenticated user with file-
EUVD-2026-86160
NVD
CVE.org
EPSS
GitHub
Exploit-DB