Skip to main content

Termix EUVDEUVD-2026-86162

| CVE-2026-79762 MEDIUM
Use of Hard-coded Cryptographic Key (CWE-321)
2026-09-24 GitHub_M
5.5
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain offline copy of Termix SQLite DB
  2. Delivery
    Read committed default system secret from public source
  3. Exploit
    Derive per-user KEK via PBKDF2 (userId salt)
  4. Execution
    Unwrap and recover user DEK
  5. Impact
    Decrypt stored SSH passwords/keys/passphrases

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A04:2025 - Cryptographic Failures
ASVS 5.0
V11 - Cryptography Key management, no hard-coded keys
Exploitation Conditions

Requires the attacker to already possess an offline copy of the Termix SQLite database (e.g., an exposed/stolen backup, filesystem access, or a separate exfiltration bug), AND the target must have OIDC or WebAuthn users whose secrets were stored while OIDC_SYSTEM_SECRET and WEBAUTHN_SYSTEM_SECRET were left unset - which is the default because Termix's default deployment artifacts do not configure them. Password-authenticated users are NOT affected by this key-derivation path. Limiting factors: no live/network exploitation is possible; the vulnerability yields nothing without the database file; operators who set custom OIDC_SYSTEM_SECRET/WEBAUTHN_SYSTEM_SECRET values are not exposed via the default-secret path. Affected versions 1.7.0 through 2.5.0; fixed in 2.5.1.

Impact

This is a genuine but access-gated data-confidentiality flaw, not a network-facing critical. All signals are consistent and modest: the NVD/vendor CVSS 3.1 vector (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N = 5.5 Medium) correctly reflects that exploitation is NOT remote - the description's decisive precondition is 'an attacker with an offline SQLite database copy,' which maps to AV:L. There is no EPSS score, no CISA KEV listing, and no public POC, so exploitation status is: no public exploit identified at time of analysis. The weakness (CWE-321, hard-coded default cryptographic secrets) is real and confirmed by the source diff (the committed strings 'termix-oidc-system-secret-default' and 'termix-webauthn-system-secret-default' were removed in the fix), which makes the crypto trivially breakable ONCE the database is obtained - but obtaining that database is the true gating step and is out of scope of this CVE. Net: real priority only for operators whose SQLite DB may leak (backups, shared hosts, a separate file-read/exfil vuln); low real-world risk absent that exposure. No conflicting signals; the main missing datum is any independent exploitation telemetry (none exists yet).

Exploit ScenarioDerived

An attacker who obtains a copy of Termix's SQLite database - via a stolen/misconfigured backup, host compromise, or a separate file-disclosure bug - reads the committed default system secret from the open-source code, combines it with the per-user userId (which serves as the public PBKDF2 salt), and re-derives each OIDC/WebAuthn user's key-encryption key offline. This lets them unwrap the Data Encryption Key and decrypt stored SSH passwords, private keys, and key passphrases with no interaction with the live service. No public exploit code exists, but the derivation is deterministic and requires only standard crypto libraries.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 24, 2026

Offline recovery of stored SSH secrets is possible in Termix 1.7.0 through 2.5.0 because the keys that wrap OIDC and WebAuthn users' Data Encryption Keys are derived from committed default strings rather than operator-supplied secrets. An attacker who obtains a copy of the SQLite database - through an exposed or stolen backup, filesystem access, or a separate exfiltration bug - can recompute the wrapping key from the static default value plus the public userId salt, unwrap each affected user's DEK, and decrypt stored SSH passwords, private keys, and key passphrases; password-authenticated users are not affected by this derivation path. Vendor-released patch: 2.5.1. No public exploit code has been identified at time of analysis, and because the attacker must already hold the database file, this is an access-gated local data-confidentiality flaw (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N) rather than a network-facing issue.

RemediationAI

Upgrade to Termix 2.5.1 (release tag release-2.5.1-tag), which is the vendor-released patch and which also performs transparent re-wrapping of legacy DEKs under the new SystemCrypto-derived key on first successful decryption, as detailed in advisory GHSA-685g-ccvv-6p8m and PR #1067. After upgrading, explicitly set unique, high-entropy OIDC_SYSTEM_SECRET and WEBAUTHN_SYSTEM_SECRET environment values so that future wrapping no longer depends on the built-in defaults; note the important trade-off that this only changes derivation going forward and does not retroactively protect any database copy already exfiltrated. Because the DEK recovery is deterministic for records written under the old defaults, treat every SSH password, private key, and key passphrase stored in Termix for an OIDC or WebAuthn account as compromised and rotate or re-issue those credentials - the practical side effect is that affected users must re-enter rotated secrets into the platform. If immediate patching is not possible, compensating controls are limited and all involve reducing database exposure: restrict filesystem permissions on the SQLite file to the Termix service account, remove or encrypt any off-host or publicly reachable database backups, and avoid copying the database to developer workstations; these reduce the probability of an attacker ever satisfying the prerequisite of possessing the file but do nothing to protect an already-leaked copy, and they must be paired with credential rotation once the upgrade is applied.

Affected VersionsENISA

Termix 1.7.0, < 2.5.1

Affected Packages

euvd termix_1_7_0 fix: 2.5.1

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

Termix encrypts per-user data with a Data Encryption Key (DEK) that is itself wrapped by a key-encryption key (KEK). In the affected code path in src/backend/utils/user-crypto.ts, that KEK was produced with PBKDF2-HMAC-SHA256 (100,000 iterations) over a hard-coded fallback string - 'termix-oidc-system-secret-default' for OIDC users and 'termix-webauthn-system-secret-default' for WebAuthn users - salted only with the non-secret userId (prefixed with 'webauthn:' in the WebAuthn case). Because the environment variables OIDC_SYSTEM_SECRET and WEBAUTHN_SYSTEM_SECRET are not set by the project's default deployment artifacts, every default deployment used these public constants, making the KEK fully deterministic and reproducible from data present in the database itself. This is the classic CWE-321 (Use of a Hard-coded Cryptographic Key) failure: the root cause is not the cipher but the absence of a deployment-unique secret in the key-derivation input. The upstream fix in commit 401ec7e8 (and related commit ddbdd5c4, PR #1067) routes key derivation through SystemCrypto.getInstance().getEncryptionKey() and HKDF-SHA256 with distinct domain-separation info strings ('termix:oidc-user-kek', 'termix:webauthn-user-kek'), falling back to the configured PBKDF2 path only when the operator has actually set the secrets. A new deriveLegacySystemKey plus decryptSystemWrappedDEK routine attempts decryption with the new key first, then falls back to the legacy default-derived key and transparently re-wraps the DEK under the new key, persisting the migrated value - so existing databases are upgraded without losing access to previously stored secrets.

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

Vendor (GitHub_M) PRIMARY 5.5 MEDIUM
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 5.5 MEDIUM

Exploitation needs local possession of the SQLite DB (AV:L) and effectively account/file access (PR:L); derivation is deterministic (AC:L); impact is confidentiality-only (C:H, I/A:N), matching the vendor vector.

3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
4.0 AV:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Lifecycle Timeline

1
Patch available
Sep 24, 2026 - 17:03 EUVD

DescriptionCVE.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, Termix derives the keys that wrap OIDC and WebAuthn users' Data Encryption Keys from committed default strings and the public userId salt in src/backend/utils/user-crypto.ts. Because OIDC_SYSTEM_SECRET and WEBAUTHN_SYSTEM_SECRET are not configured by the project's default deployment artifacts, an attacker with an offline SQLite database copy can derive the wrapping key, recover each affected user's DEK, and decrypt stored SSH passwords, private keys, and key passphrases. Password-authenticated users are not affected by this specific key derivation path. This issue is fixed in version 2.5.1.

Threat Intelligence Overview

EPSS Score
0.1%
Top 100% exploitable
Prevalence
Low
niche open-source self-hosted web SSH management platform, no broad enterprise footprint
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

28
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +28
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Termix

View all
CVE-2025-59951 CRITICAL POC
9.2 Oct 01

Unauthenticated attackers can retrieve stored SSH host credentials - including addresses, usernames, and passwords - fro

CVE-2026-22804 HIGH POC
8.0 Jan 12

Stored XSS in Termix File Manager (versions 1.7.0-1.9.0) allows attackers with SSH server access to execute arbitrary Ja

CVE-2026-45744 CRITICAL
9.9 Jun 05

Remote command execution in Termix web-based server management platform (versions prior to 2.3.2) allows any authenticat

CVE-2026-42454 CRITICAL
9.9 May 08

Remote code execution in Termix (self-hosted web-based server management platform) before version 2.1.0 lets an authenti

CVE-2026-53545 CRITICAL
9.8 Aug 19

OS command injection in Termix (self-hosted web SSH/tunneling platform) before 2.3.2 lets an authenticated user who can

CVE-2026-45748 CRITICAL
9.8 Jun 05

OS command injection in Termix web-based server management platform prior to version 2.3.2 allows remote unauthenticated

CVE-2026-53546 CRITICAL
9.6 Aug 19

Cross-user SSH credential disclosure in Termix, a self-hosted web server-management platform, allows an authenticated lo

CVE-2026-53548 CRITICAL
9.6 Aug 19

Broken authorization in Termix (self-hosted web-based SSH/server management platform) before 2.6.1 lets any authenticate

CVE-2026-79766 CRITICAL
9.1 Sep 24

Command injection in Termix 2.4.1 through 2.5.0 lets an authenticated administrator execute arbitrary operating-system c

CVE-2026-45746 CRITICAL
9.0 Jun 05

Cross-tenant remote code execution in Termix (web-based SSH/file management platform) prior to version 2.3.2 allows an a

CVE-2026-45750 CRITICAL
9.0 Jun 05

Command injection in Termix server management platform before version 2.3.2 allows authenticated users to execute arbitr

CVE-2026-53542 HIGH
8.8 Aug 19

Remote command injection in Termix, a web-based SSH server management platform, allows any authenticated user with file-

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy