nanoid: custom generators can loop indefinitely when size is zero
High severity
GitHub Reviewed
Published
Jul 29, 2026
to the GitHub Advisory Database
•
Updated Aug 13, 2026
Description
Published by the National Vulnerability Database
Jul 29, 2026
Published to the GitHub Advisory Database
Jul 29, 2026
Reviewed
Aug 7, 2026
Last updated
Aug 13, 2026
nanoid (Nano ID) before 5.1.6 contains 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. An application that passes an unvalidated, attacker-controlled size of 0 to these functions is exposed to a denial-of-service condition.
References