Description
nanoid (Nano ID) before 5.1.16 contains an infinite loop in the customAlphabet and nanoid functions of its non-secure module (nanoid/non-secure). When these functions are given a negative size, the loop counter is decremented from a negative value and never reaches its termination condition, spinning indefinitely and hanging the calling thread. An application that passes an unvalidated, attacker-controlled negative size to these functions is exposed to a denial-of-service condition.
Published: 2026-07-29
Score: 8.2 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Nano ID library contains an infinite loop in its non‑secure customAlphabet and nanoid functions when a negative size is supplied. The loop counter starts negative and never satisfies the termination condition, causing the calling thread to spin endlessly and hang the application. This results in a denial‑of‑service condition for any process that imports the vulnerable module and passes an unvalidated, attacker‑controlled negative size.

Affected Systems

The vulnerability affects the nanoid library being used in Node.js applications; no explicit affected version list is provided by the CNA. Any program that imports nanoid/non-secure and passes a negative size argument—directly or indirectly via user input—can trigger the loop. The issue is confined to the non‑secure module of the library.

Risk and Exploitability

The CVSS score of 8.2 indicates a high impact vulnerability, while the EPSS score of less than 1% suggests a low probability of exploitation. The vulnerability is not listed in CISA’s KEV catalog. The likely attack vector is inferred to be remote if the application accepts network input, or local if local input is used, because the flaw depends on an attacker-controlled negative size being passed to the library functions. This inference is not stated explicitly in the advisory but is derived from the description of the function usage. Once triggered, the affected thread will hang, potentially exhausting resources and causing service downtime.

Generated by OpenCVE AI on August 2, 2026 at 07:55 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade nanoid to version 5.1.16 or later to remove the infinite loop flaw.
  • Replace use of the non‑secure module with the secure module (nanoid/secure) if available.
  • Validate or sanitize all size arguments passed to customAlphabet or nanoid functions to ensure they are non‑negative before invoking the library functions.

Generated by OpenCVE AI on August 2, 2026 at 07:55 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-28wg-ghj8-5hjv nanoid: non-secure generators can loop indefinitely with negative size
History

Wed, 29 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 29 Jul 2026 14:00:00 +0000

Type Values Removed Values Added
Description nanoid (Nano ID) before 5.1.16 contains an infinite loop in the customAlphabet and nanoid functions of its non-secure module (nanoid/non-secure). When these functions are given a negative size, the loop counter is decremented from a negative value and never reaches its termination condition, spinning indefinitely and hanging the calling thread. An application that passes an unvalidated, attacker-controlled negative size to these functions is exposed to a denial-of-service condition.
Title nanoid before 5.1.16 Infinite Loop via Negative Size in non-secure module
First Time appeared Nanoid Project
Nanoid Project nanoid
Weaknesses CWE-835
CPEs cpe:2.3:a:nanoid_project:nanoid:*:*:*:*:*:node.js:*:*
Vendors & Products Nanoid Project
Nanoid Project nanoid
References
Metrics cvssV3_1

{'score': 5.9, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H'}

cvssV4_0

{'score': 8.2, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

Nanoid Project Nanoid
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-07-29T14:37:19.382Z

Reserved: 2026-07-28T18:13:39.684Z

Link: CVE-2026-67214

cve-icon Vulnrichment

Updated: 2026-07-29T14:37:15.476Z

cve-icon NVD

Status : Analyzed

Published: 2026-07-29T14:16:35.043

Modified: 2026-08-18T14:20:11.067

Link: CVE-2026-67214

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-02T08:00:04Z

Weaknesses
  • CWE-835

    Loop with Unreachable Exit Condition ('Infinite Loop')