GitHub Advisoryadvisory · npm

GHSA-28wg-ghj8-5hjv nanoid: non-secure generators can loop indefinitely with negative size

HIGH Published 2026-07-29 Modified 2026-08-07 Official page ↗
Aliases
CVE-2026-67214
Ecosystem
npm
Packages
nanoid
Severity
High
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Weaknesses
CWE-835
Reviewed
2026-08-07

Affected packages

• npm nanoid: < 3.3.16 → fixed in 3.3.16 • npm nanoid: >= 4.0.0, < 5.1.16 → fixed in 5.1.16

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.

Related

Alias · CVE (1)

  • CVE-2026-67214 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… vulnerability

Weakness · CWE (1)

  • CWE-835 Loop with Unreachable Exit Condition weakness

References