CVE Vulnerabilities

CVE-2020-8631

Use of Insufficiently Random Values

Published: Feb 05, 2020 | Modified: Dec 22, 2021
CVSS 3.x
5.5
MEDIUM
Source:
NVD
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
CVSS 2.x
2.1 LOW
AV:L/AC:L/Au:N/C:P/I:N/A:N
RedHat/V2
RedHat/V3
8.1 MODERATE
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Ubuntu
LOW

cloud-init through 19.4 relies on Mersenne Twister for a random password, which makes it easier for attackers to predict passwords, because rand_str in cloudinit/util.py calls the random.choice function.

Weakness

The product uses insufficiently random numbers or values in a security context that depends on unpredictable numbers.

Affected Software

Name Vendor Start Version End Version
Cloud-init Canonical * 19.4 (including)
Red Hat Enterprise Linux 7 RedHat cloud-init-0:19.4-7.el7 *
Red Hat Enterprise Linux 8 RedHat cloud-init-0:19.4-11.el8 *
Cloud-init Ubuntu bionic *
Cloud-init Ubuntu eoan *
Cloud-init Ubuntu esm-infra/xenial *
Cloud-init Ubuntu groovy *
Cloud-init Ubuntu trusty *
Cloud-init Ubuntu upstream *
Cloud-init Ubuntu xenial *

Potential Mitigations

  • Use a well-vetted algorithm that is currently considered to be strong by experts in the field, and select well-tested implementations with adequate length seeds.
  • In general, if a pseudo-random number generator is not advertised as being cryptographically secure, then it is probably a statistical PRNG and should not be used in security-sensitive contexts.
  • 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.

References