c-ares is an asynchronous resolver library. When /dev/urandom or RtlGenRandom() are unavailable, c-ares uses rand() to generate random numbers used for DNS query ids. This is not a CSPRNG, and it is also not seeded by srand() so will generate predictable output. Input from the random number generator is fed into a non-compilant RC4 implementation and may not be as strong as the original RC4 implementation. No attempt is made to look for modern OS-provided CSPRNGs like arc4random() that is widely available. This issue has been fixed in version 1.19.1.
The product uses insufficiently random numbers or values in a security context that depends on unpredictable numbers.
Name | Vendor | Start Version | End Version |
---|---|---|---|
C-ares | C-ares_project | * | 1.19.1 (excluding) |
Red Hat Enterprise Linux 8 | RedHat | nodejs:16-8080020230608150024.63b34585 | * |
Red Hat Enterprise Linux 8 | RedHat | nodejs:18-8080020230607122508.63b34585 | * |
Red Hat Enterprise Linux 8.6 Extended Update Support | RedHat | nodejs:16-8060020230620060944.ad008a3a | * |
Red Hat Enterprise Linux 9 | RedHat | nodejs:18-9020020230531092345.rhel9 | * |
Red Hat Enterprise Linux 9 | RedHat | nodejs-1:16.19.1-2.el9_2 | * |
Red Hat Enterprise Linux 9 | RedHat | c-ares-0:1.19.1-1.el9 | * |
Red Hat Enterprise Linux 9 | RedHat | c-ares-0:1.19.1-1.el9 | * |
Red Hat Enterprise Linux 9.0 Extended Update Support | RedHat | nodejs-1:16.18.1-4.el9_0 | * |
Red Hat Software Collections for Red Hat Enterprise Linux 7 | RedHat | rh-nodejs14-nodejs-0:14.21.3-4.el7 | * |
C-ares | Ubuntu | bionic | * |
C-ares | Ubuntu | trusty | * |
C-ares | Ubuntu | upstream | * |
C-ares | Ubuntu | xenial | * |