VDB
KO
MEDIUM 5.9

GHSA-28wg-ghj8-5hjv

nanoid: non-secure generators can loop indefinitely with negative size

Quick fix

GHSA-28wg-ghj8-5hjv — nanoid: upgrade to the fixed version with the command below.

npm install nanoid@3.3.16

Details

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.

Are you affected?

Enter the version of the package you're using.

Affected packages

npm / nanoid
Introduced in: 0 Fixed in: 3.3.16
Fix npm install nanoid@3.3.16
npm / nanoid
Introduced in: 4.0.0 Fixed in: 5.1.16
Fix npm install nanoid@5.1.16

References