« Back to list

CVE-2022-35255

Status: ModifiedCritical (9.1)—

A weak randomness in WebCrypto keygen vulnerability exists in Node.js 18 due to a change with EntropySource() in SecretKeyGenTraits::DoKeyGen() in src/crypto/crypto_keygen.cc. There are two problems with this: 1) It does not check the return value, it assumes EntropySource() always succeeds, but it can (and sometimes will) fail. 2) The random data returned byEntropySource() may not be cryptographically strong and therefore not suitable as keying material.

CVSS

Exploitation probability (EPSS)

EPSS (Exploit Prediction Scoring System, FIRST) estimates how likely a vulnerability is to be exploited in the wild within 30 days. It complements CVSS (impact) and CISA KEV (confirmed exploitation).

Affected technologies (3)

CWEs

References

Raw JSON (NVD)

Show
{
  "id": "CVE-2022-35255",
  "cveTags": [],
  "metrics": {
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "id": "CVE-2022-35255",
          "role": "CISA Coordinator",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "yes"
            },
            {
              "technicalImpact": "total"
            }
          ],
          "version": "2.0.3",
          "timestamp": "2025-04-24T13:23:49.139648Z"
        }
      }
    ],
    "cvssMetricV31": [
      {
        "type": "Primary",
        "source": "nvd@nist.gov",
        "cvssData": {
          "scope": "UNCHANGED",
          "version": "3.1",
          "baseScore": 9.1,
          "attackVector": "NETWORK",
          "baseSeverity": "CRITICAL",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N",
          "integrityImpact": "HIGH",
          "userInteraction": "NONE",
          "attackComplexity": "LOW",
          "availabilityImpact": "NONE",
          "privilegesRequired": "NONE",
          "confidentialityImpact": "HIGH"
        },
        "impactScore": 5.2,
        "exploitabilityScore": 3.9
      },
      {
        "type": "Secondary",
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "cvssData": {
          "scope": "UNCHANGED",
          "version": "3.1",
          "baseScore": 9.1,
          "attackVector": "NETWORK",
          "baseSeverity": "CRITICAL",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N",
          "integrityImpact": "HIGH",
          "userInteraction": "NONE",
          "attackComplexity": "LOW",
          "availabilityImpact": "NONE",
          "privilegesRequired": "NONE",
          "confidentialityImpact": "HIGH"
        },
        "impactScore": 5.2,
        "exploitabilityScore": 3.9
      }
    ]
  },
  "affected": [
    {
      "source": "support@hackerone.com",
      "affectedData": [
        {
          "vendor": "NodeJS",
          "product": "Node",
          "versions": [
            {
              "status": "affected",
              "version": "4.0",
              "lessThan": "4.*",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "5.0",
              "lessThan": "5.*",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "6.0",
              "lessThan": "6.*",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "7.0",
              "lessThan": "7.*",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "8.0",
              "lessThan": "8.*",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "9.0",
              "lessThan": "9.*",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "10.0",
              "lessThan": "10.*",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "11.0",
              "lessThan": "11.*",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "12.0",
              "lessThan": "12.*",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "13.0",
              "lessThan": "13.*",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "15.0",
              "lessThan": "15.*",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "17.0",
              "lessThan": "17.*",
              "versionType": "semver"
            },
            {
              "status": "affected",
              "version": "18.0",
              "lessThan": "18.9.1",
              "versionType": "semver"
            }
          ],
          "defaultStatus": "unaffected"
        }
      ]
    }
  ],
  "published": "2022-12-05T22:15:10.513",
  "references": [
    {
      "url": "https://cert-portal.siemens.com/productcert/pdf/ssa-332410.pdf",
      "tags": [
        "Third Party Advisory"
      ],
      "source": "support@hackerone.com"
    },
    {
      "url": "https://hackerone.com/reports/1690000",
      "tags": [
        "Exploit",
        "Issue Tracking",
        "Third Party Advisory"
      ],
      "source": "support@hackerone.com"
    },
    {
      "url": "https://security.netapp.com/advisory/ntap-20230113-0002/",
      "tags": [
        "Third Party Advisory"
      ],
      "source": "support@hackerone.com"
    },
    {
      "url": "https://www.debian.org/security/2023/dsa-5326",
      "tags": [
        "Third Party Advisory"
      ],
      "source": "support@hackerone.com"
    },
    {
      "url": "https://cert-portal.siemens.com/productcert/pdf/ssa-332410.pdf",
      "tags": [
        "Third Party Advisory"
      ],
      "source": "af854a3a-2127-422b-91ae-364da2661108"
    },
    {
      "url": "https://hackerone.com/reports/1690000",
      "tags": [
        "Exploit",
        "Issue Tracking",
        "Third Party Advisory"
      ],
      "source": "af854a3a-2127-422b-91ae-364da2661108"
    },
    {
      "url": "https://security.netapp.com/advisory/ntap-20230113-0002/",
      "tags": [
        "Third Party Advisory"
      ],
      "source": "af854a3a-2127-422b-91ae-364da2661108"
    },
    {
      "url": "https://www.debian.org/security/2023/dsa-5326",
      "tags": [
        "Third Party Advisory"
      ],
      "source": "af854a3a-2127-422b-91ae-364da2661108"
    }
  ],
  "vulnStatus": "Modified",
  "weaknesses": [
    {
      "type": "Secondary",
      "source": "support@hackerone.com",
      "description": [
        {
          "lang": "en",
          "value": "CWE-338"
        }
      ]
    },
    {
      "type": "Primary",
      "source": "nvd@nist.gov",
      "description": [
        {
          "lang": "en",
          "value": "CWE-338"
        }
      ]
    }
  ],
  "descriptions": [
    {
      "lang": "en",
      "value": "A weak randomness in WebCrypto keygen vulnerability exists in Node.js 18 due to a change with EntropySource() in SecretKeyGenTraits::DoKeyGen() in src/crypto/crypto_keygen.cc. There are two problems with this: 1) It does not check the return value, it assumes EntropySource() always succeeds, but it can (and sometimes will) fail. 2) The random data returned byEntropySource() may not be cryptographically strong and therefore not suitable as keying material."
    },
    {
      "lang": "es",
      "value": "Existe una aleatoriedad débil en la vulnerabilidad keygen de WebCrypto en Node.js 18 debido a un cambio con EntropySource() en SecretKeyGenTraits::DoKeyGen() en src/crypto/crypto_keygen.cc. Hay dos problemas con esto: 1) No verifica el valor de retorno, asume que EntropySource() siempre tiene éxito, pero puede (y a veces fallará). 2) Los datos aleatorios devueltos por EntropySource() pueden no ser criptográficamente sólidos y, por lo tanto, no son adecuados como material de claves."
    }
  ],
  "lastModified": "2026-06-17T04:51:39.850",
  "configurations": [
    {
      "nodes": [
        {
          "negate": false,
          "cpeMatch": [
            {
              "criteria": "cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:*",
              "vulnerable": true,
              "matchCriteriaId": "E47572BB-0E1B-4F93-BCE9-45E03CFD65BD",
              "versionEndIncluding": "15.14.0",
              "versionStartIncluding": "15.0.0"
            },
            {
              "criteria": "cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:*",
              "vulnerable": true,
              "matchCriteriaId": "1D1D0CEC-62E5-4368-B8F2-1DA5DD0B88FA",
              "versionEndIncluding": "16.12.0",
              "versionStartIncluding": "16.0.0"
            },
            {
              "criteria": "cpe:2.3:a:nodejs:node.js:*:*:*:*:lts:*:*:*",
              "vulnerable": true,
              "matchCriteriaId": "09BD0FC2-5AA1-4A22-8432-A2EEA314FE09",
              "versionEndExcluding": "16.17.1",
              "versionStartIncluding": "16.13.0"
            },
            {
              "criteria": "cpe:2.3:a:nodejs:node.js:*:*:*:*:-:*:*:*",
              "vulnerable": true,
              "matchCriteriaId": "DA8C00DD-A6E5-4E3D-8DD4-F4B51F5C208A",
              "versionEndExcluding": "18.9.1",
              "versionStartIncluding": "18.0.0"
            }
          ],
          "operator": "OR"
        }
      ]
    },
    {
      "nodes": [
        {
          "negate": false,
          "cpeMatch": [
            {
              "criteria": "cpe:2.3:a:siemens:sinec_ins:*:*:*:*:*:*:*:*",
              "vulnerable": true,
              "matchCriteriaId": "C89891C1-DFD7-4E1F-80A9-7485D86A15B5",
              "versionEndExcluding": "1.0"
            },
            {
              "criteria": "cpe:2.3:a:siemens:sinec_ins:1.0:-:*:*:*:*:*:*",
              "vulnerable": true,
              "matchCriteriaId": "4664B195-AF14-4834-82B3-0B2C98020EB6"
            },
            {
              "criteria": "cpe:2.3:a:siemens:sinec_ins:1.0:sp1:*:*:*:*:*:*",
              "vulnerable": true,
              "matchCriteriaId": "75BC588E-CDF0-404E-AD61-02093A1DF343"
            },
            {
              "criteria": "cpe:2.3:a:siemens:sinec_ins:1.0:sp2:*:*:*:*:*:*",
              "vulnerable": true,
              "matchCriteriaId": "A334F7B4-7283-4453-BAED-D2E01B7F8A6E"
            }
          ],
          "operator": "OR"
        }
      ]
    },
    {
      "nodes": [
        {
          "negate": false,
          "cpeMatch": [
            {
              "criteria": "cpe:2.3:o:debian:debian_linux:11.0:*:*:*:*:*:*:*",
              "vulnerable": true,
              "matchCriteriaId": "FA6FEEC2-9F11-4643-8827-749718254FED"
            }
          ],
          "operator": "OR"
        }
      ]
    }
  ],
  "sourceIdentifier": "support@hackerone.com"
}