{
  "schemaVersion": 1,
  "attribution": [
    {
      "source": "CISA Known Exploited Vulnerabilities",
      "url": "https://www.cisa.gov/known-exploited-vulnerabilities-catalog",
      "licence": "US government work"
    },
    {
      "source": "GitHub Advisory Database",
      "url": "https://github.com/advisories",
      "licence": "CC BY 4.0"
    },
    {
      "source": "Have I Been Pwned",
      "url": "https://haveibeenpwned.com/",
      "licence": "CC BY 4.0"
    },
    {
      "source": "CVE Program (CVE records)",
      "url": "https://www.cve.org/Legal/TermsOfUse",
      "licence": "CVE Terms of Use",
      "notice": "Copyright © 1999-2026, The MITRE Corporation. CVE is a trademark and the CVE logo is a registered trademark of The MITRE Corporation.",
      "terms": "CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE™). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy."
    },
    {
      "source": "FIRST EPSS",
      "url": "https://www.first.org/epss/",
      "licence": "free to use; FIRST requests attribution"
    }
  ],
  "record": {
    "id": "CVE-2023-30590",
    "sourceURL": "https://www.cve.org/CVERecord?id=CVE-2023-30590",
    "idYear": 2023,
    "status": "PUBLISHED",
    "publishedAt": "2023-11-28T19:15:19.447Z",
    "updatedAt": "2026-10-08T21:13:52.073Z",
    "importedAt": "2026-10-24T01:56:53.804Z",
    "snapshot": {
      "id": "cve_2026-10-24_midnight_baseline",
      "at": "2026-10-24T00:00:00.000Z",
      "source": "https://github.com/CVEProject/cvelistV5/releases/tag/cve_2026-10-24_0100Z"
    },
    "facts": {
      "title": null,
      "summary": "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\".\n\nThe 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.",
      "affected": [
        {
          "vendor": "NodeJS",
          "product": "Node",
          "defaultStatus": "unaffected",
          "versions": [
            {
              "version": "4.0",
              "status": "affected",
              "versionType": "semver",
              "lessThan": "4.*"
            },
            {
              "version": "5.0",
              "status": "affected",
              "versionType": "semver",
              "lessThan": "5.*"
            },
            {
              "version": "6.0",
              "status": "affected",
              "versionType": "semver",
              "lessThan": "6.*"
            },
            {
              "version": "7.0",
              "status": "affected",
              "versionType": "semver",
              "lessThan": "7.*"
            },
            {
              "version": "8.0",
              "status": "affected",
              "versionType": "semver",
              "lessThan": "8.*"
            },
            {
              "version": "9.0",
              "status": "affected",
              "versionType": "semver",
              "lessThan": "9.*"
            },
            {
              "version": "10.0",
              "status": "affected",
              "versionType": "semver",
              "lessThan": "10.*"
            },
            {
              "version": "11.0",
              "status": "affected",
              "versionType": "semver",
              "lessThan": "11.*"
            },
            {
              "version": "12.0",
              "status": "affected",
              "versionType": "semver",
              "lessThan": "12.*"
            },
            {
              "version": "13.0",
              "status": "affected",
              "versionType": "semver",
              "lessThan": "13.*"
            },
            {
              "version": "14.0",
              "status": "affected",
              "versionType": "semver",
              "lessThan": "14.*"
            },
            {
              "version": "15.0",
              "status": "affected",
              "versionType": "semver",
              "lessThan": "15.*"
            },
            {
              "version": "16.0",
              "status": "affected",
              "versionType": "semver",
              "lessThan": "16.20.1"
            },
            {
              "version": "17.0",
              "status": "affected",
              "versionType": "semver",
              "lessThan": "17.*"
            },
            {
              "version": "18.0",
              "status": "affected",
              "versionType": "semver",
              "lessThan": "18.16.1"
            },
            {
              "version": "19.0",
              "status": "affected",
              "versionType": "semver",
              "lessThan": "19.*"
            },
            {
              "version": "20.0",
              "status": "affected",
              "versionType": "semver",
              "lessThan": "20.3.1"
            }
          ]
        }
      ]
    }
  }
}