Skip to content
Fencer Vulns
medium 5.9

CVE-2023-31147 json

Insufficient randomness in generation of DNS query IDs in c-ares

published 2023-05-25 3 y ago modified 2026-06-17 4 mo ago also EUVD-2023-35463

cvss
5.9
version 3.1, CNA
cisa kev
Not listed
not in CISA's catalog
epss
0.9%
EPSS 0.9% chance of exploitation in 30 days, percentile 60%
public exploits
0
none known

Summary

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.

Patch / fix

  • c-ares_project c-ares 1.19.1
  • c-ares Debian 14, Debian 13 1.19.1-2

debian advisories DEBIAN-CVE-2023-31147

  • c-ares RHEL 9 1.19.1-1.el9
  • npm RHEL 8 1:9.5.0-1.18.14.2.3.module+el8.8.0+19021+4b8b11cc
  • nodejs RHEL 8 1:18.14.2-3.module+el8.8.0+19021+4b8b11cc
  • nodejs-nodemon RHEL 8 2.0.20-2.module+el8.8.0+18432+27f188ac
  • nodejs-full-i18n RHEL 8 1:18.14.2-3.module+el8.8.0+19021+4b8b11cc
  • nodejs-packaging RHEL 8 2021.06-4.module+el8.7.0+15582+19c314fa
  • nodejs-packaging-bundler RHEL 8 2021.06-4.module+el8.7.0+15582+19c314fa
  • npm RHEL 8 1:8.19.3-1.16.19.1.2.module+el8.8.0+19038+6f60344f

red hat advisories RHSA-2023:6635RHSA-2023:4035RHSA-2023:4034RHSA-2023:4033RHSA-2023:4036RHSA-2023:3586

  • nodejs16 SLES for SAP 15 SP3, SLES 15 SP3-LTSS, SLE High Performance Computing 15 SP3-LTSS +3 more 16.20.1-150300.7.24.2
  • nodejs18 SLE Module for Web and Scripting 15 SP5, SLE Module for Web and Scripting 15 SP4, openSUSE Leap 15.5 +1 more 18.16.1-150400.9.9.1
  • nodejs16 SLE Module for Web and Scripting 15 SP4, openSUSE Leap 15.4 16.20.1-150400.3.21.1
  • nodejs18 SLE Module for Web and Scripting 12 18.16.1-8.9.1
  • nodejs16 SLE Module for Web and Scripting 12 16.20.1-8.30.1
  • libcares2 SLES for SAP 12 SP5, SLES for SAP 12 SP4, SLES 12 SP5 +7 more 1.9.1-9.12.1
  • c-ares SLES for SAP 15 SP3, SLES for SAP 15 SP2, SLES for SAP 15 SP1 +21 more 1.19.1-150000.3.23.1

suse advisories SUSE-SU-2023:2861-1SUSE-SU-2023:2669-1SUSE-SU-2023:2663-1SUSE-SU-2023:2662-1SUSE-SU-2023:2655-1SUSE-SU-2023:2477-1

  • c-ares openSUSE Tumbleweed 1.19.1-1.1

opensuse advisories openSUSE-SU-2024:12951-1

  • c-ares AlmaLinux 9 1.19.1-1.el9
  • npm AlmaLinux 8 1:8.19.3-1.16.19.1.2.module_el8.8.0+3586+d4fc0b72
  • nodejs AlmaLinux 8 1:16.19.1-2.module_el8.8.0+3586+d4fc0b72
  • nodejs-nodemon AlmaLinux 8 2.0.20-3.module_el8.8.0+3586+d4fc0b72
  • nodejs-full-i18n AlmaLinux 8 1:16.19.1-2.module_el8.8.0+3586+d4fc0b72
  • nodejs-packaging AlmaLinux 8 25-1.module_el8.5.0+2605+45d748af
  • npm AlmaLinux 8 1:9.5.0-1.18.14.2.3.module_el8.8.0+3587+ee652244
  • nodejs AlmaLinux 8 1:18.14.2-3.module_el8.8.0+3587+ee652244

almalinux advisories ALSA-2023:6635ALSA-2023:4034ALSA-2023:4035ALSA-2023:3577ALSA-2023:3586

  • nodejs Rocky Linux 8 1:16.19.1-2.module+el8.8.0+1338+00a07a77
  • nodejs-nodemon Rocky Linux 8 2.0.20-3.module+el8.7.0+1178+d52dba78
  • nodejs-packaging Rocky Linux 8 25-1.module+el8.7.0+1108+49363b0d
  • nodejs Rocky Linux 8 1:18.14.2-3.module+el8.8.0+1337+7ea46b57
  • nodejs-nodemon Rocky Linux 8 2.0.20-2.module+el8.7.0+1177+510ae886
  • nodejs-packaging Rocky Linux 8 2021.06-4.module+el8.7.0+1072+5b168780
  • nodejs-nodemon Rocky Linux 9 2.0.20-2.module+el9.6.0+32048+5323bb50
  • nodejs-packaging Rocky Linux 9 2021.06-4.module+el9.5.0+31770+0da7192d

rocky linux advisories RLSA-2023:4034RLSA-2023:4035RLSA-2023:3577

  • c-ares CBL-Mariner 2.0 1.19.1-1
  • fluent-bit CBL-Mariner 2.0 2.1.10-1
  • grpc CBL-Mariner 2.0 1.42.0-10
  • nodejs CBL-Mariner 2.0 16.20.1-2
  • nodejs18 CBL-Mariner 2.0 18.17.1-2
  • python-gevent CBL-Mariner 2.0 21.1.2-3
  • grpc Azure Linux 3.0 1.62.0-2

azure linux advisories AZL-26869AZL-26870AZL-26871AZL-26874AZL-26875AZL-26876

Azure Linux vulnerability data, Copyright (c) Microsoft Corporation, from https://github.com/microsoft/AzureLinuxVulnerabilityData via OSV, under the MIT licence; changed: normalised to fixed package versions per release. MIT

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2023-31147 updated cvss 5.9

c-ares: Insufficient randomness in generation of DNS query IDs

  • Red Hat Enterprise Linux 6 c-ares Red Hat Enterprise Linux 7 c-ares
    affected: no fix planned “Out of support scope”
  • Red Hat Enterprise Linux 8 c-ares
    affected: no fix available
  • Red Hat Enterprise Linux AppStream (v. 8) nodejs 16.19.1-2.module+el8.8.0+19038+6f60344f, nodejs 18.14.2-3.module+el8.8.0+19021+4b8b11cc, nodejs-packaging 25-1.module+el8.5.0+10992+fac5fe06, npm 9.5.0-1.18.14.2.3.module+el8.8.0+19021+4b8b11cc, npm 8.19.3-1.16.19.1.2.module+el8.8.0+19038+6f60344f, nodejs-nodemon 2.0.20-2.module+el8.8.0+18432+27f188ac, +5 more
    fixed: vendor fix RHSA-2023:4034
  • Red Hat Enterprise Linux AppStream (v. 9) nodejs 16.19.1-2.el9_2, nodejs-libs 16.19.1-2.el9_2, npm 8.19.3-1.16.19.1.2.el9_2, nodejs-full-i18n 16.19.1-2.el9_2, nodejs 18.14.2-3.module+el9.2.0.z+18964+42696395, npm 9.5.0-1.18.14.2.3.module+el9.2.0.z+18964+42696395, +4 more
    fixed: vendor fix RHSA-2023:3586
  • Red Hat Enterprise Linux AppStream EUS (v.8.6) nodejs 16.19.1-2.module+el8.6.0+19139+7f27a8ff, nodejs-packaging 25-1.module+el8.5.0+10992+fac5fe06, npm 8.19.3-1.16.19.1.2.module+el8.6.0+19139+7f27a8ff, nodejs-nodemon 2.0.20-3.module+el8.6.0+19139+7f27a8ff, nodejs-full-i18n 16.19.1-2.module+el8.6.0+19139+7f27a8ff
    fixed: vendor fix RHSA-2023:4033
  • Red Hat Enterprise Linux AppStream EUS (v.9.0) nodejs 16.18.1-4.el9_0, nodejs-libs 16.18.1-4.el9_0, npm 8.19.2-1.16.18.1.4.el9_0, nodejs-full-i18n 16.18.1-4.el9_0
    fixed: vendor fix RHSA-2023:4036
  • Red Hat Enterprise Linux BaseOS (v. 9) c-ares 1.19.1-1.el9
    fixed: vendor fix RHSA-2023:6635
  • Red Hat Software Collections for RHEL Workstation(v. 7) rh-nodejs14-nodejs 14.21.3-4.el7, rh-nodejs14-npm 6.14.18-14.21.3.4.el7, rh-nodejs14-nodejs-full-i18n 14.21.3-4.el7 Red Hat Software Collections for RHEL(v. 7) rh-nodejs14-nodejs 14.21.3-4.el7, rh-nodejs14-npm 6.14.18-14.21.3.4.el7, rh-nodejs14-nodejs-full-i18n 14.21.3-4.el7
    fixed: vendor fix RHSA-2023:4039

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

cisa ICSA-24-046-11 updated cvss 5.9

Siemens SCALANCE XCM-/XRM-300

  • Siemens SCALANCE XCH328 (6GK5328-4TS01-2EC2) <V2.4 Siemens SCALANCE XCM324 (6GK5324-8TS01-2AC2) <V2.4 Siemens SCALANCE XCM328 (6GK5328-4TS01-2AC2) <V2.4 Siemens SCALANCE XCM332 (6GK5332-0GA01-2AC2) <V2.4 Siemens SCALANCE XRH334 (24 V DC, 8xFO, CC) (6GK5334-2TS01-2ER3) <V2.4 Siemens SCALANCE XRM334 (2x230 V AC, 8xFO) (6GK5334-2TS01-4AR3) <V2.4
    +5 more products
    Siemens SCALANCE XRM334 (2x230 V AC, 12xFO) (6GK5334-3TS01-4AR3) <V2.4 Siemens SCALANCE XRM334 (24 V DC, 8xFO) (6GK5334-2TS01-2AR3) <V2.4 Siemens SCALANCE XRM334 (24 V DC, 12xFO) (6GK5334-3TS01-2AR3) <V2.4 Siemens SCALANCE XRM334 (230 V AC, 8xFO) (6GK5334-2TS01-3AR3) <V2.4 Siemens SCALANCE XRM334 (230 V AC, 12xFO) (6GK5334-3TS01-3AR3) <V2.4
    affected: fixed in V2.4 support.industry.siemens.com

Facts from CISA's republication of the vendor's own advisory (CSAF); the linked advisory is the authoritative source. CISA notification · csaf

CISA SSVC

Exploitation
none
Automatable
no
Technical impact
partial
Assessed
21 mo ago

Exploit prediction

0.91% chance of exploitation in the next 30 days, higher than 60% of all scored CVEs (FIRST EPSS, 2026-11-08).

CVSS scores

assigned by version score vector
CNA 3.1 5.9 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
NVD 3.1 6.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N

Affected products

  • c-ares c-ares

Classification

Weakness
  • CWE-330 Use of Insufficiently Random Values

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.