CVE-2026-94107 in NivoCartinfo

Summary

by MITRE • 09/20/2026

NivoCart through 2.4.0 contains a predictable password reset token vulnerability in the forgotten.php endpoint that generates recovery codes using substr(md5(mt_rand()), 0, 10). Attackers who know an administrator's email address can request a password reset and predict the token to gain administrative account access without rate limiting or expiration.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Analysis

by VulDB Data Team • 09/20/2026

The NivoCart e-commerce platform through version 2.4.0 suffers from a critical predictable password reset token vulnerability located within its forgotten.php endpoint, which fundamentally undermines the authentication recovery mechanism designed to protect administrator accounts. This flaw stems directly from the implementation of weak cryptographic primitives for generating temporary security tokens. Specifically, the system utilizes the PHP function mt_rand combined with md5 hashing and string substring extraction to create these codes, a method that is mathematically predictable given sufficient observation or knowledge of the underlying pseudo-random number generator state. The resulting token generation logic fails to meet basic industry standards for cryptographic randomness, allowing an attacker who possesses valid administrative email addresses to bypass security controls entirely without needing to exploit complex network conditions or side-channel attacks.

From a technical perspective, the vulnerability arises because mt_rand is not designed to be cryptographically secure; it is intended for general-purpose randomization rather than security-sensitive applications where unpredictability is paramount. When an attacker requests a password reset, they receive a token that can potentially be predicted if they understand or can reverse-engineer the seed state of the pseudo-random number generator used by mt_rand at the time of generation. Furthermore, the use of md5, while not directly broken in this context due to the short length and specific usage, adds no additional entropy security layer because it operates on a predictable input sequence derived from mt_rand. The combination results in tokens that are effectively guessable or derivable by an adversary with knowledge of the email address associated with the target account, rendering the reset mechanism useless as a barrier against unauthorized access.

The operational impact of this vulnerability is severe, particularly for administrators who hold elevated privileges within the NivoCart environment. Since there is no rate limiting applied to password reset requests and no expiration time set on these tokens, an attacker has unlimited attempts to guess or predict the correct token without triggering any defensive mechanisms such as account lockouts or temporary bans. This lack of operational constraints means that brute-force attacks against the predictable token space are feasible and likely successful given the limited entropy provided by a ten-character substring of an md5 hash derived from mt_rand. Once the attacker successfully predicts the valid reset token, they can seamlessly change the administrator password to one of their choosing, thereby gaining full administrative control over the e-commerce platform without any legitimate credentials or multi-factor authentication challenges.

This vulnerability aligns with CWE-347 Improper Verification of Cryptographic Signature and more specifically CWE-640 Weak Password Recovery Mechanism for Forgotten Password, as it involves a flawed implementation of password recovery that allows unauthorized access through predictable secrets. In terms of the MITRE ATT&CK framework, this flaw facilitates the T1078 Valid Accounts tactic by allowing attackers to establish persistent administrative presence after compromising credentials via weak reset tokens. It also relates to T1528 Steal Application Access Token if the token is considered an application-level credential for recovery purposes. The absence of rate limiting further exacerbates the risk, aligning with common failures in access control implementations where brute-force resistance mechanisms are omitted from sensitive authentication flows.

To mitigate this vulnerability, immediate remediation actions must focus on replacing the weak random number generation algorithm with a cryptographically secure alternative such as CSPRNG or openssl_random_pseudo_bytes to ensure that reset tokens possess sufficient entropy and unpredictability. Additionally, developers should implement strict rate limiting policies on password reset endpoints to prevent automated guessing attacks, even if the token itself were strong. Tokens must also be assigned short expiration times, typically ranging from fifteen minutes to one hour, to limit the window of opportunity for an attacker attempting to exploit a partially predicted or guessed code. Finally, implementing account lockout mechanisms after a certain number of failed attempts provides an additional layer of defense against brute-force scenarios. These changes will restore the integrity of the password recovery process and ensure that administrative accounts remain protected against unauthorized access via predictable reset tokens.

Responsible

VulnCheck

Reservation

09/20/2026

Disclosure

09/20/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

very low

Sources

Do you know our Splunk app?

Download it now for free!