CVE-2026-67214
MediumCVSS 5.9Exploitation Probability (EPSS)
Low risk25th percentile - higher than 25% of all known CVEs
Summary
The nanoid (Nano ID) library before versions 3.3.16 and 5.1.16 contains an infinite loop in the customAlphabet and nanoid functions of its non-secure module. When given a negative size, the loop counter is decremented from a negative value and never reaches its termination condition, hanging the calling thread.
Risk Assessment
An application passing an unvalidated, attacker-controlled negative size to these functions is exposed to a denial-of-service condition, potentially leading to service unavailability.
Recommendation
Update the nanoid library to version 3.3.16 or 5.1.16 (or later). Additionally, validate input to prevent negative size values from being passed.
Other vulnerabilities in nanoid
See all- CVE-2026-73086High
nanoid prior to versions 3.3.12 and 5.1.11 has a vulnerability in the nanoid(size) function that coerces the size parameter to a signed 32-bit integer, potentially corrupting the CSPRNG state and generating deterministic identifiers.
- CVE-2026-67213Medium
In the nanoid (Nano ID) library before version 5.1.6, there is an infinite loop in the customAlphabet and customRandom functions. When these functions are configured with a size of 0, the internal generation loop never satisfies its exit condition and spins indefinitely, hanging the calling thread.
Original NVD description (English source)
nanoid (Nano ID) before 3.3.16 and 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.

