CVE-2023-31147
CWE-330Published: May 25, 2023· Updated: Jun 17, 2026
Official Description
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.
Technical Analysis
CVE-2023-31147 can be exploited remotely over the network without requiring physical or adjacent access, significantly expanding the attack surface for threat actors.
The vulnerability requires no privileges and no user interaction, making it a prime target for automated exploitation campaigns and worm-like propagation.
CVSS v3.1 Vector Breakdown
Affected Vendors & Products
Exploit & PoC Resources
Official Patches & Advisories
All References (10)
Quick Facts
Related CVEs (CWE-330)
Recommended Actions
- →Apply vendor patches immediately
- →Monitor CVE-2023-31147 in threat intel feeds
- →Review IDS/IPS signatures for exploitation attempts