CWEweakness
CWE-339 Small Seed Space in PRNG
- Abstraction
- Variant
- Structure
- Simple
- Status
- Draft
- Languages
- Not Language-Specific
- CWE version
- 5.0
Description
A Pseudo-Random Number Generator (PRNG) uses a relatively small seed space, which makes it more susceptible to brute force attacks.
Extended description
PRNGs are entirely deterministic once seeded, so it should be extremely difficult to guess the seed. If an attacker can collect the outputs of a PRNG and then brute force the seed by trying every possibility to see which seed matches the observed output, then the attacker will know the output of any subsequent calls to the PRNG. A small seed space implies that the attacker will have far fewer possible values to try to exhaust all possibilities.
Common consequences
• Other: Varies by Context
Potential mitigations
• [Architecture and Design] Use well vetted pseudo-random number generating algorithms with adequate length seeds. Pseudo-random number generators can produce predictable numbers if the generator is known and the seed can be guessed. A 256-bit seed is a good starting point for producing a "random enough" number.
• [Architecture and Design, Requirements] Use products or modules that conform to FIPS 140-2 [REF-267] to avoid obvious entropy problems, or use the more recent FIPS 140-3 [REF-1192] if possible.
Observed examples
• CVE-2019-10908: product generates passwords via org.apache.commons.lang.RandomStringUtils, which uses java.util.Random internally. This PRNG has only a 48-bit seed.
Related
Observed example · CVE (1)
- CVE-2019-10908 In Airsonic 10.2.1, RecoverController.java generates passwords via org.apache.commons.lang.RandomStringUtils, which uses java.util.Random… vulnerability
Child of · CWE (1)
- CWE-335 Incorrect Usage of Seeds in Pseudo-Random Number Generator (PRNG) weakness
Peer of · CWE (1)
- CWE-341 Predictable from Observable State weakness
Referenced by CVE · weakness (2)
- CVE-2026-2815 Incorrect use of the PUF key for user key generation in EFR32xG27 results in predictable keys vulnerability
- CVE-2024-10026 A weak hashing algorithm and small sizes of seeds/secrets in Google's gVisor allowed for a remote attacker to calculate a local IP address… vulnerability