CVE-2023-30590

The generateKeys() API function returned from crypto.createDiffieHellman() only generates missing (or outdated) keys, that is, it only generates a private key if none has been set yet, but the function is also needed to compute the corresponding public key after calling setPrivateKey(). However, the documentation says this API call: "Generates private and public Diffie-Hellman key values".

The documented behavior is very different from the actual behavior, and this difference could easily lead to security issues in applications that use these APIs as the DiffieHellman may be used as the basis for application-level security, implications are consequently broad.
ProviderTypeBase ScoreAtk. VectorAtk. ComplexityPriv. RequiredVector
NISTNIST
7.5 HIGH
NETWORK
LOW
NONE
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
hackeroneCNA
---
---
CVEADP
---
---
Base Score
CVSS 3.x
EPSS Score
Percentile: 68%
VendorProductVersion
nodejsnode.js
16.0.0 ≤
𝑥
< 16.20.1
nodejsnode.js
18.0.0 ≤
𝑥
< 18.16.1
nodejsnode.js
20.0.0 ≤
𝑥
< 20.3.1
𝑥
= Vulnerable software versions
Debian logo
Debian Releases
Debian Product
Codename
nodejs
bullseye
vulnerable
bullseye (security)
12.22.12~dfsg-1~deb11u5
fixed
bookworm
18.19.0+dfsg-6~deb12u2
fixed
bookworm (security)
18.19.0+dfsg-6~deb12u1
fixed
trixie
20.18.1+dfsg-1
fixed
sid
20.18.1+dfsg-1
fixed
Ubuntu logo
Ubuntu Releases
Ubuntu Product
Codename
nodejs
noble
not-affected
mantic
Fixed 18.13.0+dfsg1-1ubuntu2.2
released
lunar
ignored
kinetic
ignored
jammy
Fixed 12.22.9~dfsg-1ubuntu3.5
released
focal
Fixed 10.19.0~dfsg-3ubuntu1.6
released
bionic
Fixed 8.10.0~dfsg-2ubuntu0.4+esm5
released
xenial
Fixed 4.2.6~dfsg-1ubuntu4.2+esm3
released
trusty
Fixed 0.10.25~dfsg2-2ubuntu1.2+esm2
released