Skip to content
Heist/ feed
Back to feed
Medium

User input results in Unbounded resource consumption in @zxcvbn-ts/core

Type: advisorySources: OSV

zxcvbn-ts is an open source password strength estimator written in typescript. This vulnerability affects users running on the nodeJS platform which are using the second argument of the zxcvbn function. It can result in an unbounded resource consumption as the user inputs array is extended with every function call. Browsers are impacted, too but a single user need to do a lot of input changes so that it affects the browser, while the node process gets the inputs of every user of a platform and can be killed that way. This problem has been patched in version 3.0.2. Users are advised to upgrade. Users unable to upgrade should stop using the second argument of the zxcvbn function and use the zxcvbnOptions.setOptions function.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2023-34109
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 13:42 UTC · Revision 1

Source evidence

User input results in Unbounded resource consumption in @zxcvbn-ts/core

core-osv · Original source

Published 7 Jun 2023, 17:11 UTC

zxcvbn-ts is an open source password strength estimator written in typescript. This vulnerability affects users running on the nodeJS platform which are using the second argument of the zxcvbn function. It can result in an unbounded resource consumption as the user inputs array is extended with every function call. Browsers are impacted, too but a single user need to do a lot of input changes so that it affects the browser, while the node process gets the inputs of every user of a platform and can be killed that way. This problem has been patched in version 3.0.2. Users are advised to upgrade. Users unable to upgrade should stop using the second argument of the zxcvbn function and use the zxcvbnOptions.setOptions function.

osv:CVE-2023-34109
Complete source record
{
  "id": "574b2c3d8265bb468441e4dfe0086216a9d0ec37817eea4e6f5c72b11e6ecbc7",
  "url": "https://osv.dev/vulnerability/CVE-2023-34109",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "User input results in Unbounded resource consumption in @zxcvbn-ts/core",
    "summary": "zxcvbn-ts is an open source password strength estimator written in typescript. This vulnerability affects users running on the nodeJS platform which are using the second argument of the zxcvbn function. It can result in an unbounded resource consumption as the user inputs array is extended with every function call. Browsers are impacted, too but a single user need to do a lot of input changes so that it affects the browser, while the node process gets the inputs of every user of a platform and can be killed that way. This problem has been patched in version 3.0.2. Users are advised to upgrade. Users unable to upgrade should stop using the second argument of the zxcvbn function and use the zxcvbnOptions.setOptions function.",
    "evidence": "osv:CVE-2023-34109",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2023-34109",
      "aliases": [
        "CVE-2023-34109",
        "GHSA-38hx-x5hq-5fg4"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/zxcvbn-ts/zxcvbn",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "ee53a5361aedf35717fd8b10f8868db432e66686"
                },
                {
                  "fixed": "3f9bed21b5d01f6f6863476822ca857355fba22f"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:zxcvbn-ts_project:zxcvbn-ts:*:*:*:*:*:node.js:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "3.0.2"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "range": [
                      {
                        "fixed": "3f9bed21b5d01f6f6863476822ca857355fba22f"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            }
          ],
          "versions": [
            "@zxcvbn-ts/matcher-pwned@3.0.1",
            "@zxcvbn-ts/language-pt-br@3.0.1",
            "@zxcvbn-ts/language-pl@3.0.1",
            "@zxcvbn-ts/language-nl-be@3.0.1",
            "@zxcvbn-ts/language-ja@3.0.1",
            "@zxcvbn-ts/language-it@3.0.1",
            "@zxcvbn-ts/language-id@3.0.1",
            "@zxcvbn-ts/language-fr@3.0.1",
            "@zxcvbn-ts/language-fi@3.0.1",
            "@zxcvbn-ts/language-es-es@3.0.1",
            "@zxcvbn-ts/language-en@3.0.1",
            "@zxcvbn-ts/language-de@3.0.1",
            "@zxcvbn-ts/language-cs@3.0.1",
            "@zxcvbn-ts/language-common@3.0.1",
            "@zxcvbn-ts/core@3.0.1",
            "@zxcvbn-ts/matcher-pwned@3.0.0",
            "@zxcvbn-ts/language-pt-br@3.0.0",
            "@zxcvbn-ts/language-pl@3.0.0",
            "@zxcvbn-ts/language-nl-be@3.0.0",
            "@zxcvbn-ts/language-ja@3.0.0",
            "@zxcvbn-ts/language-it@3.0.0",
            "@zxcvbn-ts/language-id@3.0.0",
            "@zxcvbn-ts/language-fr@3.0.0",
            "@zxcvbn-ts/language-fi@3.0.0",
            "@zxcvbn-ts/language-es-es@3.0.0",
            "@zxcvbn-ts/language-en@3.0.0",
            "@zxcvbn-ts/language-de@3.0.0",
            "@zxcvbn-ts/language-cs@3.0.0",
            "@zxcvbn-ts/language-common@3.0.0",
            "@zxcvbn-ts/core@3.0.0",
            "@zxcvbn-ts/matcher-pwned@2.0.9",
            "@zxcvbn-ts/core@2.2.1",
            "@zxcvbn-ts/matcher-pwned@2.0.8",
            "@zxcvbn-ts/language-pt-br@2.1.1",
            "@zxcvbn-ts/language-nl-be@2.1.1",
            "@zxcvbn-ts/core@2.2.0",
            "@zxcvbn-ts/matcher-pwned@2.0.7",
            "@zxcvbn-ts/language-es-es@2.1.1",
            "@zxcvbn-ts/core@2.1.0",
            "@zxcvbn-ts/matcher-pwned@2.0.6",
            "@zxcvbn-ts/language-pt-br@2.1.0",
            "@zxcvbn-ts/language-pl@2.2.0",
            "@zxcvbn-ts/language-nl-be@2.1.0",
            "@zxcvbn-ts/language-it@2.1.0",
            "@zxcvbn-ts/language-id@2.1.0",
            "@zxcvbn-ts/language-fr@2.2.0",
            "@zxcvbn-ts/language-fi@2.2.0",
            "@zxcvbn-ts/language-es-es@2.1.0",
            "@zxcvbn-ts/language-en@2.1.0",
            "@zxcvbn-ts/language-de@2.1.0",
            "@zxcvbn-ts/core@2.0.5",
            "@zxcvbn-ts/matcher-pwned@2.0.5",
            "@zxcvbn-ts/language-fi@2.1.0",
            "@zxcvbn-ts/core@2.0.4",
            "@zxcvbn-ts/matcher-pwned@2.0.4",
            "@zxcvbn-ts/matcher-pwned@2.0.3",
            "@zxcvbn-ts/core@2.0.3",
            "@zxcvbn-ts/matcher-pwned@2.0.2",
            "@zxcvbn-ts/language-ja@2.1.0",
            "@zxcvbn-ts/core@2.0.2",
            "@zxcvbn-ts/language-pl@2.1.0",
            "@zxcvbn-ts/language-fr@2.1.0",
            "@zxcvbn-ts/matcher-pwned@2.0.1",
            "@zxcvbn-ts/language-pt-br@2.0.1",
            "@zxcvbn-ts/language-nl-be@2.0.1",
            "@zxcvbn-ts/language-it@2.0.1",
            "@zxcvbn-ts/language-fr@2.0.1",
            "@zxcvbn-ts/language-es-es@2.0.1",
            "@zxcvbn-ts/language-en@2.0.1",
            "@zxcvbn-ts/language-de@2.0.1",
            "@zxcvbn-ts/language-common@2.0.1",
            "@zxcvbn-ts/core@2.0.1",
            "@zxcvbn-ts/matcher-pwned@2.0.0",
            "@zxcvbn-ts/language-pt-br@2.0.0",
            "@zxcvbn-ts/language-nl-be@2.0.0",
            "@zxcvbn-ts/language-it@2.0.0",
            "@zxcvbn-ts/language-es-es@2.0.0",
            "@zxcvbn-ts/language-en@2.0.0",
            "@zxcvbn-ts/language-de@2.0.0",
            "@zxcvbn-ts/language-common@2.0.0",
            "@zxcvbn-ts/core@2.0.0",
            "@zxcvbn-ts/matcher-pwned@1.2.0",
            "@zxcvbn-ts/language-nl-be@1.2.0",
            "@zxcvbn-ts/language-fr@1.2.0",
            "@zxcvbn-ts/language-es-es@1.2.0",
            "@zxcvbn-ts/language-en@1.2.0",
            "@zxcvbn-ts/language-de@1.2.0",
            "@zxcvbn-ts/language-common@1.0.2",
            "@zxcvbn-ts/core@1.2.0",
            "@zxcvbn-ts/language-nl-be@1.0.0",
            "@zxcvbn-ts/language-fr@1.0.0",
            "@zxcvbn-ts/language-en@1.0.0",
            "@zxcvbn-ts/language-de@1.0.0",
            "@zxcvbn-ts/language-common@1.0.0",
            "@zxcvbn-ts/core@1.0.0",
            "@zxcvbn-ts/language-nl-be@1.0.0-beta.1",
            "@zxcvbn-ts/language-fr@1.0.0-beta.1",
            "@zxcvbn-ts/language-en@1.0.0-beta.1",
            "@zxcvbn-ts/language-de@1.0.0-beta.1",
            "@zxcvbn-ts/language-common@1.0.0-beta.1",
            "@zxcvbn-ts/core@1.0.0-beta.1",
            "@zxcvbn-ts/language-nl-be@1.0.0-beta.0",
            "@zxcvbn-ts/language-fr@1.0.0-beta.0",
            "@zxcvbn-ts/language-en@1.0.0-beta.0",
            "@zxcvbn-ts/language-de@1.0.0-beta.0",
            "@zxcvbn-ts/language-common@1.0.0-beta.0",
            "@zxcvbn-ts/core@1.0.0-beta.0",
            "@zxcvbn-ts/language-nl-be@0.3.0",
            "@zxcvbn-ts/language-en@0.3.0",
            "@zxcvbn-ts/language-de@0.3.0",
            "@zxcvbn-ts/language-common@0.1.2",
            "@zxcvbn-ts/core@0.3.0",
            "@zxcvbn-ts/language-en@0.1.0",
            "@zxcvbn-ts/language-de@0.1.0",
            "@zxcvbn-ts/language-common@0.1.0",
            "@zxcvbn-ts/core@0.1.0",
            "v4.4.2",
            "v4.4.1",
            "v4.4.0",
            "4.3.0",
            "4.2.0",
            "4.1.1",
            "4.1.0",
            "4.0.1",
            "3.5.0",
            "3.4.0",
            "3.3.1",
            "3.3.0",
            "3.2.2",
            "3.2.1",
            "3.2.0",
            "3.1.0",
            "3.0.2",
            "3.0.1",
            "2.0.2",
            "1.1.0",
            "1.0.7",
            "1.0.6",
            "1.0.5",
            "1.0.4",
            "1.0.3",
            "1.0.2",
            "1.0.1",
            "v1.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-34109.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:35.854076909Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/34xxx/CVE-2023-34109.json",
        "https://github.com/zxcvbn-ts/zxcvbn/security/advisories/GHSA-38hx-x5hq-5fg4",
        "https://nvd.nist.gov/vuln/detail/CVE-2023-34109",
        "https://github.com/zxcvbn-ts/zxcvbn/commit/3f9bed21b5d01f6f6863476822ca857355fba22f"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-400"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/34xxx/CVE-2023-34109.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2023-34109",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 503215,
  "published_at": "2023-06-07T17:11:21.949+00:00"
}