CVE Vulnerabilities

CVE-2019-19794

Use of Cryptographically Weak Pseudo-Random Number Generator (PRNG)

Published: Dec 13, 2019 | Modified: Jan 02, 2020
CVSS 3.x
5.9
MEDIUM
Source:
NVD
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
CVSS 2.x
4.3 MEDIUM
AV:N/AC:M/Au:N/C:N/I:P/A:N
RedHat/V2
RedHat/V3
5.9 MODERATE
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Ubuntu
MEDIUM

The miekg Go DNS package before 1.1.25, as used in CoreDNS before 1.6.6 and other products, improperly generates random numbers because math/rand is used. The TXID becomes predictable, leading to response forgeries.

Weakness

The product uses a Pseudo-Random Number Generator (PRNG) in a security context, but the PRNG’s algorithm is not cryptographically strong.

Affected Software

Name Vendor Start Version End Version
Miekg-dns Miekg-dns_project * 1.1.25 (excluding)
Red Hat OpenShift Jaeger 1.20 RedHat distributed-tracing/jaeger-rhel8-operator:1.20.1-3 *
Red Hat OpenStack Platform 16.2 RedHat rhosp-rhel8-tech-preview/osp-director-operator:1.2.3-2 *
Golang-github-miekg-dns Ubuntu bionic *
Golang-github-miekg-dns Ubuntu disco *
Golang-github-miekg-dns Ubuntu eoan *
Golang-github-miekg-dns Ubuntu trusty *

Extended Description

When a non-cryptographic PRNG is used in a cryptographic context, it can expose the cryptography to certain types of attacks. Often a pseudo-random number generator (PRNG) is not designed for cryptography. Sometimes a mediocre source of randomness is sufficient or preferable for algorithms that use random numbers. Weak generators generally take less processing power and/or do not use the precious, finite, entropy sources on a system. While such PRNGs might have very useful features, these same features could be used to break the cryptography.

Potential Mitigations

References