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.
The product uses a Pseudo-Random Number Generator (PRNG) in a security context, but the PRNG’s algorithm is not cryptographically strong.
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 | * |
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.