A critical vulnerability has been discovered in Mobatek's MobaXterm, a popular terminal emulator and remote management tool. Researchers have found that vulnerable versions of the software use a weak and flawed encryption method for password storage. This vulnerability, identified as CVE-2025-0714, could allow an attacker to easily decrypt sensitive data, resulting in a potential leak of user credentials. This post will detail the vulnerability, including its origin, a code snippet that demonstrates the issue, and steps to mitigate the exploit.

Background

MobaXterm, developed by Mobatek, is a widely-used networking tool that provides users with advanced remote access capabilities, file transfers, and more. In versions prior to 25., the software utilizes an insecure method for storing passwords, which could enable an attacker to decrypt the stored data and obtain user passwords.

Exploit Details

The vulnerability exists in the password storage mechanism of MobaXterm, specifically in the usage of an initialisation vector (IV) and a master key. The software uses an IV consisting only of zero bytes and a master key to encrypt each password individually. This static combination of the IV and master key makes it much easier for an attacker to decrypt the data when it is stored at rest.

In the default configuration, when a user opens MobaXterm, they are prompted for their password. A derivative of the user's input is then used as the master key. The issue arises because both the master key and the IV are the same for each stored password. As a result, the AES CFB ciphertext depends solely on the plaintext password.

Here's a code snippet that demonstrates the vulnerability

import os
from Crypto.Cipher import AES
from Crypto.Util.Padding import unpad

def decrypt(ciphertext, password):
    iv = b'\x00' * 16
    master_key = password.encode()
    cipher = AES.new(master_key, AES.MODE_CFB, iv)
    decrypted_data = cipher.decrypt(ciphertext)
    
    return unpad(decrypted_data, AES.block_size)

As seen in the code above, the initialisation vector (IV) is a fixed value of 16 zero bytes and the master_key is derived directly from the user's password. This predictable and constant pairing makes it significantly easier for an attacker to obtain sensitive information and decrypt data at rest.

Original References

1. MobaXterm Official Website
2. CVE-2025-0714: NIST National Vulnerability Database

Mitigation Steps

Users running versions of MobaXterm prior to version 25. should take the following steps to mitigate this vulnerability:

1. Update to the latest version of MobaXterm as soon as possible. The most recent release can be obtained from the official website.
2. Once the software has been updated, reset all stored passwords to ensure that any previously encrypted data uses the new, secure encryption method.
3. Consider implementing additional security measures, such as two-factor authentication, to further protect your network and user accounts.

Conclusion

CVE-2025-0714 represents a critical vulnerability that affects the password storage mechanism in Mobatek's MobaXterm software. This weakness could enable an attacker to easily decrypt sensitive data and gain access to user credentials. It is essential for users to update their software to the most recent version and take immediate steps to minimize the risk of compromise.

Timeline

Published on: 02/17/2025 12:15:27 UTC
Last modified on: 02/19/2025 09:15:09 UTC