CWEweakness

CWE-339 Small Seed Space in PRNG

Official page ↗
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