The device uses an algorithm that is predictable and generates a pseudo-random number.
View on MITREPseudo-random number generator algorithms are predictable because their registers have a finite number of possible states, which eventually lead to repeating patterns. As a result, pseudo-random number generators (PRNGs) can compromise their randomness or expose their internal state to various attacks, such as reverse engineering or tampering. It is highly recommended to use hardware-based true random number generators (TRNGs) to ensure the security of encryption schemes. TRNGs generate unpredictable, unbiased, and independent random numbers because they employ physical phenomena, e.g., electrical noise, as sources to generate random numbers.
A true random number generator should be specified for cryptographic algorithms.
A true random number generator should be implemented for cryptographic algorithms.
No detection method information available for this CWE.
The example code is taken from the PRNG inside the buggy OpenPiton SoC of HACK@DAC'21 [REF-1370]. The SoC implements a pseudo-random number generator using a Linear Feedback Shift Register (LFSR).
PHP framework uses mt_rand() function (Marsenne Twister) when generating tokens
View DetailsNo relationship information available for this CWE.
CWE-1241: Use of Predictable Algorithm in Random Number Generator is a Common Weakness Enumeration (CWE) entry maintained by MITRE. The device uses an algorithm that is predictable and generates a pseudo-random number. Pseudo-random number generator algorithms are predictable because their registers have a finite number of possible states, which eventually lead to repeating patterns. As a result, pseudo-random number generators (PRNGs) can compromise their randomness or expose their internal state to various attacks, such as reverse engineering or tampering. It is highly recommended to use hardware-based true random number generators (TRNGs) to ensure the security of encryption schemes. TRNGs generate unpredictable, unbiased, and independent random numbers because they employ physical phenomena, e.g., electrical noise, as sources to generate random numbers.
If exploited, CWE-1241 (Use of Predictable Algorithm in Random Number Generator) it can compromise Confidentiality, leading to outcomes such as Read Application Data.
Recommended mitigations for CWE-1241 include: A true random number generator should be specified for cryptographic algorithms. A true random number generator should be implemented for cryptographic algorithms.
MITRE documents real CVEs mapped to CWE-1241, including CVE-2021-3692. You can look up the full details of each CVE, including CVSS scores and remediation guidance, on our CVE Lookup tool.
A CWE (Common Weakness Enumeration) like CWE-1241 describes a category of software weakness — the underlying flaw type. A CVE (Common Vulnerabilities and Exposures) identifies a specific, real-world vulnerability in a particular product. In short, a CWE is the kind of mistake, and a CVE is an instance of that mistake being found in software.