Skip to content

fix: bump nanoid to 3.3.18 to resolve GHSA-2v37-7h3g-55p8 - #45

Draft
warp-agent-staging[bot] wants to merge 1 commit into
mainfrom
factory/nanoid-cve-2026-67213
Draft

fix: bump nanoid to 3.3.18 to resolve GHSA-2v37-7h3g-55p8#45
warp-agent-staging[bot] wants to merge 1 commit into
mainfrom
factory/nanoid-cve-2026-67213

Conversation

@warp-agent-staging

@warp-agent-staging warp-agent-staging Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

Summary

Bumps the transitive nanoid dependency from 3.3.16 to 3.3.18 to resolve GHSA-2v37-7h3g-55p8 (CVE-2026-67213, GitHub-reported severity: high), reported via Dependabot alert #44.

The advisory describes an infinite loop in nanoid's customAlphabet/customRandom functions when called with a size of 0, which can hang the calling thread (denial of service).

nanoid is a dev-scoped, transitive dependency here — it arrives via vitest -> vite -> postcss -> nanoid (confirmed with npm ls nanoid --all). It does not appear anywhere in src/, dist/, or scripts/ (no first-party call sites), so this repo has no real runtime exposure to the vulnerability; this change clears the alert. GitHub had already auto-dismissed the Dependabot alert for the same reason (dev-scoped), but the fix still belongs in the lockfile.

Tracked by DEVX-8511.

Changes

  • package-lock.json: nanoid 3.3.163.3.18 (patched version for the 3.x line; compatible with postcss's ^3.3.16 range). Resolved via npm update nanoid; no overrides entry was needed. Lockfile-only change — no source, dist/, or workflow files were touched.

Verification

  • npm ci — passed
  • npm run lint — passed (no errors)
  • npm run format:check — passed (All matched files use Prettier code style!)
  • npm test — passed (vitest run, 27/27 tests passed)
  • Confirmed node_modules/nanoid resolves to 3.3.18 in the lockfile and no other dependency was silently upgraded.
  • dist/, .github/workflows/, and consumer-workflows/ are unchanged, as expected for a dependency not present in the bundle.

Update the transitive, dev-scoped nanoid dependency (pulled in by
postcss via prettier-eslint) from 3.3.16 to 3.3.18, fixing an infinite
loop in customAlphabet/customRandom when called with size 0 that could
hang the calling thread (DoS). Lockfile-only change; nanoid has no
first-party call sites in this repo.

Co-Authored-By: Warp <agent@warp.dev>
@warp-agent-staging

Copy link
Copy Markdown
Contributor Author

@/tmp/pr_comment_QPNgl5

@warp-agent-staging warp-agent-staging Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overview

Lockfile-only bump of the dev-scoped transitive nanoid from 3.3.16 to 3.3.18, clearing GHSA-2v37-7h3g-55p8. The change is correct and verified; one policy question is left for a maintainer.

Concerns

  • package.json (untouched) — question: the repo's two previous transitive security fixes pinned a floor with an overrides entry (undici, brace-expansion), while this one relies on postcss's ^3.3.16 range resolving upward. Nothing regresses today — a clean npm ci and a --package-lock-only reinstall both reproduce 3.3.18 — but a future lock regeneration has no explicit invariant holding the floor. If you want the same guarantee as the earlier fixes, add "nanoid": ">=3.3.18 <4.0.0" to overrides; otherwise this is fine as-is.

Verdict

Checks: build pass, tests pass (27/27), CI green (8/8), visual proof n/a

Found: 0 critical, 0 important, 0 suggestions, 0 nits, 1 question

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants