GHSA-28wg-ghj8-5hjv

Suggest an improvement
Source
https://github.com/advisories/GHSA-28wg-ghj8-5hjv
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/07/GHSA-28wg-ghj8-5hjv/GHSA-28wg-ghj8-5hjv.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-28wg-ghj8-5hjv
Aliases
Downstream
CGA (161)
ECHO (1)
MINI (19)
Published
2026-07-29T15:31:12Z
Modified
2026-09-10T03:50:51Z
Severity
  • 5.9 (Medium) CVSS_V3 - CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H CVSS Calculator
  • 8.2 (High) CVSS_V4 - 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 CVSS Calculator
Summary
nanoid: non-secure generators can loop indefinitely with negative size
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.

Database specific
{
    "cwe_ids":  [
        "CWE-835"
    ],
    "github_reviewed":  true,
    "github_reviewed_at":  "2026-08-07T20:52:58Z",
    "nvd_published_at":  "2026-07-29T14:16:35Z",
    "severity":  "HIGH"
}
References

Affected packages

npm / nanoid

Package

Affected ranges

Type
SEMVER
Events
Introduced
0 Unknown introduced version / All previous versions are affected
Fixed
3.3.16

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/07/GHSA-28wg-ghj8-5hjv/GHSA-28wg-ghj8-5hjv.json"

npm / nanoid

Package

Affected ranges

Type
SEMVER
Events
Introduced
4.0.0
Fixed
5.1.16

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/07/GHSA-28wg-ghj8-5hjv/GHSA-28wg-ghj8-5hjv.json"